ライブラリがインストールされているかどうかを確認する方法は?


167

Linuxでは、ライブラリがインストールされているかどうかを確認するにはどうすればよいですか?(もちろんコマンドラインから)。

今の私の特定のケースでは、libjpegがインストールされているかどうかを確認したいと思います。


どのディストリビューションを使用していますか?
半径

回答:


211

ディストリビューションに依存しない方法でこれを行うには、次のようにgrepでldconfigを使用できます。

ldconfig -p | grep libjpeg

libjpegがインストールされていない場合、出力はありません。インストールされている場合、使用可能な各バージョンの行が表示されます。

libjpegを任意のライブラリに置き換えます。ライブラリの可用性を確認するための一般的な、ディストリビューションに依存しない*方法があります。

何らかの理由でldconfigへのパスが設定されていない場合、通常はフルパスを使用して起動を試みることができます/sbin/ldconfig

**時間の99%*


2
これは答えとして受け入れられるべきです。すばらしいです!

1
ライブラリの開発バージョン(ヘッダー)を確認するためにこれを使用することはできませんよね?
andig

2
99%回指定できますか?bash: ldconfig: command not foundDebian x64 Jessieでxfceを使用して!これは... Debianのウェブサイト上でお奨めのDebianリリースです
トマーシュZato

4
@TomášZato:スーパーユーザーにならずに実行しようとするとldconfig使用できません(command not found表示されます)。
ゴーティエ

2
/sbin/ldconfig -pルートになる必要なく私のために働きます。
ペドロジメノ

34

ディストリビューションのパッケージマネージャー(aptitude、yumなど)で確認できますが、ディストリビューションを提供しなかったため、適切なコマンドを提供できません。

別の方法はgcc -ljpeg、「ld:library not found for -ljpeg」が表示された場合、gccがライブラリを見つけられなかったことを意味します(ただし、インストールされていないという意味ではありません) : "_main"、参照元:... 'これはlibjpegが見つかったことを意味します。

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* libがシステムにインストールされているかどうかを確認する他の方法です

確認する方法は他にもたくさんあります。コンテキストをもっと教えていただければ(libjpegがインストールされているかどうかを確認する必要があります)、特定のケースに最適なソリューションを提供できます。


aptitudeを使用して見つける方法は?
BBK

17

whereisユーティリティを使用します。

サンプル:

l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

11

私はこれを使用します:

gcc -lpng

libをインストールすると、次の結果が得られます。

undefined reference to 'main'

libがインストールされていない場合:

cannot find -lpng

9

debベースの配布では、次のことができます。

dpkg -s packagename

または、ファイル名のみがわかっている場合は、使用します

locate filename

ファイル名は通常libsomething.so [.version]です。


1
ファイル名は、静的バージョンの「libsomething.a」のようなものにすることもできます。
半径

私は見つけるdpkg -sことは、ライブラリ自体から微妙にまたは大幅に異なる可能性があり、実際のパッケージ名を、望んでいるので、ユーティリティでは限られました。私が使用しますdpkg -s|grep LIBRARY
ドリュースティーブンス

2
@dinomite apt-fileはあなたの友達です:)
半径

4

Redhatベースのシステムでは、pkg-configを使用して、ライブラリがインストールされているかどうかを確認できます。多くのrpmバイナリは、インストールを続行する前に実際に同じチェックを行うため、その信頼性に合理的に依存できます。

pkg-config --cflags jpeg

pkg-config --libs jpeg

pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config  --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check


1

dpkgを使用して、インストールされているかどうかを確認することもできます。

dpkg --list | grep [some_key_words_of_your_lib]

また、CentOSでは、これを試すことができます。

rpm -qa [lib_name]


注:Debianベースのディストリビューションでのみ動作します
ALex_hha

@ALex_hhaはい、ありがとう、これは強調されるべきです。CentOSまたはRed Hatベースのシステムでは、pkg-config代わりに使用します。
スコットヤン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.