当社製品には 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、locate、which
誰かそれをうまく使った人はいますか?
答え1
次のコマンドを試してくださいldd
:
ldd ImageMagick
ImageMagick プログラムが参照する動的共有オブジェクト ライブラリと、ライブラリが見つかったかどうかを出力します。
答え2
yum を使用してインストールするだけで、不足している依存関係が表示されます。
何が足りないのか知りたいだけなら、yum-downloadonlyプラグインをインストールすれば、
yum インストール -y ImageMagick --downloadonly
これにより、不足している依存関係はすべてダウンロードされますが、インストールは行われません。
rpmをインストールする前に依存関係を見つける
rpm -qpR 何か.rpm
すべての依存関係がリストされ、それらが存在するかどうかを検索できますが、それは複雑すぎるようです。おそらく yum --downloadonly で十分でしょう。
答え3
を使用することをお勧めしますautoconf
。ライブラリに対してダミー プログラムをコンパイルすることで、存在するライブラリを自動的にチェックするツールが内蔵されています。 http://www.gnu.org/software/autoconf/manual/ 例:
AC_CHECK_LIB(MagickWand, GetMagickModule)
これは、呼び出す単純なプログラムをコンパイルしようとしますGetMagickModule()
。プログラムを実行しようとするのではなく、コンパイルするだけです。
このautoconf
プログラムは、configure
ライブラリをチェックするために呼び出されるプログラムを生成します。その主な目的は、最終的に Makefile を生成することですが、それが目標である必要はありません。プログラムはconfigure
単にライブラリをチェックし、存在しない場合はエラーを返すこともできます。