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 ldd
Befehl:
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 autoconf
Programm generiert ein configure
Programm, 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 configure
Programm könnte einfach nach Bibliotheken suchen und einen Fehler zurückgeben, wenn diese nicht vorhanden sind.