скрипт для проверки библиотек ОС на RedHat 5.x и 6.x

скрипт для проверки библиотек ОС на RedHat 5.x и 6.x

Мы поставляем 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может просто проверить библиотеки и вернуть ошибку, если они не существуют.

Связанный контент