背景:我正在尝试构建我的程序,但首先我需要在 NetBeans 中设置库。我的项目正在使用 GLU,因此我安装了 libglu-dev。我没有记下库所在的位置,现在我找不到它们。
几天前我刚换到 Linux,到目前为止我对它很满意,但是我无法用 Google 找到这个,这让我很沮丧。有没有办法在不再次运行安装程序的情况下找出包文件的安装位置?我的意思是,如果我在一段时间前获得了库 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
其他两个命令无法找到任何内容。现在,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