インストールされたライブラリの場所を見つける方法

インストールされたライブラリの場所を見つける方法

背景: プログラムをビルドしようとしていますが、まず NetBeans でライブラリを設定する必要があります。私のプロジェクトは GLU を使用しているため、libglu-dev をインストールしました。ライブラリの場所をメモしていなかったため、ライブラリが見つかりません。

数日前にLinuxに切り替えましたが、今のところとても満足しています。しかし、この件についてはグーグルで調べることができず、イライラしています。インストールを再度実行せずに、パッケージのファイルがどこにインストールされたかを知る方法はありますか?つまり、ライブラリxxxを入手してしばらく前にインストールした場合、何らかのコマンド xxxこの情報を印刷するものは何ですか?

すでにlocate、find、whereisコマンドを試しましたが、何かが足りないか、正しく実行できません。libgluの場合、locateは次の結果を返します。

/usr/share/bug/libglu1-mesa
/usr/share/bug/libglu1-mesa/control
/usr/share/bug/libglu1-mesa/script
/usr/share/doc/libglu1-mesa
/usr/share/doc/libglu1-mesa/changelog.Debian.gz
/usr/share/doc/libglu1-mesa/copyright
/usr/share/lintian/overrides/libglu1-mesa
/var/lib/dpkg/info/libglu1-mesa:i386.list
/var/lib/dpkg/info/libglu1-mesa:i386.md5sums
/var/lib/dpkg/info/libglu1-mesa:i386.postinst
/var/lib/dpkg/info/libglu1-mesa:i386.postrm
/var/lib/dpkg/info/libglu1-mesa:i386.shlibs

他の 2 つのコマンドは何も見つけることができません。locate は機能しましたが、これらのパスのいずれもライブラリが実際に存在する場所ではないことは確かです (少なくとも、これまでリンクしていたものはすべて/usr/libまたはにありました/usr/local/lib)。

libglu は単なる例として導入されました。この問題の一般的な解決策を探しています。

答え1

簡単です!dpkg -L packagenameパッケージによって取り込まれたすべてのファイル (場所を含む) が一覧表示されます。

答え2

パッケージ名がわからない場合は、すべてのパッケージを一覧表示して、要求されたものを探してみてください。

dpkg --get-selections | grep -v deinstall | grep <packagename>

例えば:

$ dpkg --get-selections | grep -v deinstall | grep zip

出力:

bzip2 install
gzipinstall
p7zip-fullinstall
unzipinstall                                                                       
zipinstall  

その後:

$ dpkg -L zip

出力:

/.  
/usr
/usr/share
/usr/share/doc
/usr/share/doc/zip
/usr/share/doc/zip/copyright
/usr/share/doc/zip/TODO
/usr/share/doc/zip/changelog.Debian.gz
/usr/share/doc/zip/WHATSNEW
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/zipsplit.1.gz
/usr/share/man/man1/zipcloak.1.gz
/usr/share/man/man1/zip.1.gz
/usr/share/man/man1/zipnote.1.gz
/usr/bin
/usr/bin/zipsplit
/usr/bin/zipcloak
/usr/bin/zip
/usr/bin/
/usr/share/doc/zip/changelog.gz

関連情報