Skript zum Prüfen von Betriebssystembibliotheken auf RedHat 5.x und 6.x

Skript zum Prüfen von Betriebssystembibliotheken auf RedHat 5.x und 6.x

Wir liefern ImageMagick mit unserem Produkt. Es benötigt einige Bibliotheken.

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 

Gibt es eine Standardmethode, um zu überprüfen, ob diese Bibliotheken bereits auf dem RedHat-Host-Betriebssystem vorhanden sind?

Die Suche auf SO und Google führt zu Befehlen wie

pkg-config, lokalisieren und welche

Hat sie jemand erfolgreich eingesetzt?

Antwort1

Versuchen Sie den lddBefehl:

ldd ImageMagick

druckt die dynamischen, gemeinsam genutzten Objektbibliotheken aus, auf die das ImageMagick-Programm verweist, und gibt an, ob die Bibliotheken gefunden wurden oder nicht.

Antwort2

Sie können zur Installation einfach Yum verwenden und die fehlenden Abhängigkeiten werden angezeigt.

Wenn Sie nur wissen möchten, was fehlt, können Sie das Plugin yum-downloadonly installieren. Dann können Sie

yum install -y ImageMagick --downloadonly

Dadurch werden alle fehlenden Abhängigkeiten einfach heruntergeladen, ohne sie zu installieren.

um Abhängigkeiten zu finden, bevor Sie ein RPM installieren

rpm -qpR etwas.rpm

listet alle Abhängigkeiten auf und Sie können dann suchen, um zu sehen, ob diese vorhanden sind, aber das klingt zu kompliziert. Wahrscheinlich reicht yum --downloadonly aus.

Antwort3

Ich schlage vor, dass Sie verwenden autoconf; darin sind Tools enthalten, die automatisch nach vorhandenen Bibliotheken suchen, indem sie versuchen, ein Dummy-Programm anhand der Bibliothek zu kompilieren. http://www.gnu.org/software/autoconf/manual/ Ein Beispiel:

AC_CHECK_LIB(MagickWand, GetMagickModule)

Dies würde versuchen, ein einfaches Programm zu kompilieren, das aufrufen würde GetMagickModule()– es versucht nicht, das Programm auszuführen, sondern nur, es zu kompilieren.

Das autoconfProgramm generiert ein configureProgramm, das aufgerufen wird, um nach Bibliotheken zu suchen. Sein Hauptzweck ist es, letztendlich ein Makefile zu generieren, aber das muss nicht das Ziel sein; das configureProgramm könnte einfach nach Bibliotheken suchen und einen Fehler zurückgeben, wenn diese nicht vorhanden sind.

verwandte Informationen