Мы поставляем ImageMagick с нашим продуктом. Ему нужно довольно много библиотек.
libtiff libICE libdl
libfreetype libX11 libglib-2.0
libjpeg libbz2 libxml2
libpng librsvg-2 libz
libfontconfig libgdk_pixbuf-2.0 libm
libXext libm libgomp
libXt libgobject-.0 libpthread
libSM libgmodule-2.0
Существует ли стандартный способ проверить, присутствуют ли эти библиотеки в хостовой операционной системе RedHat?
Поиск в SO и Google приводит к таким командам:
pkg-config, найдите и какой
Кто-нибудь успешно их использовал?
решение1
Попробуйте ldd
команду:
ldd ImageMagick
выводит на экран динамические, общие объекты, библиотеки, на которые ссылается программа ImageMagick, а также информацию о том, были ли найдены библиотеки.
решение2
Вы можете просто использовать yum для установки, и он покажет отсутствующие зависимости.
если вы просто хотите узнать, чего не хватает, вы можете установить плагин yum-downloadonly, тогда вы сможете
yum install -y ImageMagick --downloadonly
это просто загрузит все отсутствующие зависимости без их установки.
чтобы найти зависимости перед установкой RPM
об/мин -qpR что-то.об/мин
выведет список всех зависимостей, и вы сможете выполнить поиск, чтобы узнать, существуют ли они, но это звучит слишком сложно. Вероятно, yum --downloadonly будет достаточно.
решение3
Я предлагаю вам использовать autoconf
; внутри есть инструменты, которые автоматически проверят наличие библиотек, пытаясь скомпилировать фиктивную программу с использованием библиотеки. http://www.gnu.org/software/autoconf/manual/ Пример:
AC_CHECK_LIB(MagickWand, GetMagickModule)
Это будет попыткой скомпилировать простую программу, которая будет вызывать GetMagickModule()
— она не будет пытаться запустить программу, а только скомпилирует ее.
Программа autoconf
генерирует configure
программу, которая будет вызвана для проверки библиотек. Ее основная цель — в конечном итоге сгенерировать Makefile, но это не обязательно должно быть ее целью; программа configure
может просто проверить библиотеки и вернуть ошибку, если они не существуют.