如何找到已安装库的位置

Rav*_*ven 64 find libraries locate

背景:我正在尝试构建我的程序,但首先我需要在 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
Run Code Online (Sandbox Code Playgroud)

其他两个命令找不到任何东西。现在 locate 完成了它的工作,但我确定这些路径都不是库实际所在的位置(至少我到目前为止链接的所有内容都在 /usr/lib 或 usr/local/lib 中)。

libglu 仅作为示例引入,我正在寻找此问题的通用解决方案。

Jo-*_*tad 91

简单!dpkg -L packagename. 这将列出包带来的所有文件(带位置)。

  • 伟大的。我也会推荐 apt-file。它需要安装,然后你需要做 apt-file 更新。apt-file list 的作用与 dpkg -L 相同,但无需先安装软件包。apt-file search 使您能够找出哪个包提供了某个文件。很酷的工具:) (3认同)
  • 哇,正是我正在寻找的,谢谢!简单说明一下:我正在寻找的是“/usr/lib/i386-linux-gnu/libGLU.so.1”(使用 dpkg 获得),该命令的库的实际名称是 libglu1-mesa。 (2认同)

小智 10

如果您不确定包名称,您可以列出所有包并尝试查找请求:

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

 For example:
      $dpkg --get-selections | grep -v deinstall | grep zip
 Output:
      bzip2                      install
      gzipinstall
      p7zip-fullinstall
      unzipinstall                                                                       
      zipinstall                         
  And then:
      $ dpkg -L zip
  Output:
      /.  
      /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/zipnote
      /usr/share/doc/zip/changelog.gz
Run Code Online (Sandbox Code Playgroud)