我最近在我的 Debian 机器上安装了 java6。我去使用 javac 并发现它没有安装。最后我(在网上搜索后)发现 javac 是 java6-sdk 包的一部分。这不是我第一次知道我想要的命令,但我不知道它所在的包。
我的问题是 - 有没有办法在命令行上找出哪个文件属于哪个包?因此,如果我想查看 javac 属于哪些包,它会列出 java6-sdk、java5-sdk,.. 因为它们都包含 javac。
答案1
apt-file
是您要查找的命令。
答案2
您可以使用apt 文件 搜索文件名你可以去Debian 软件包并搜索在线版本。
答案3
我知道这并不是你想要的,但是:
dpkg -L packagename
将列出属于已安装的包. (但您希望将其用于未安装的软件包)
我不知道它是如何做到这一点的,但 Ubuntu(源自 Debian)会建议一个如下包:
$ chkrootkit
The program 'chkrootkit' is currently not installed. You can install it by typing:
sudo apt-get install chkrootkit
bash: chkrootkit: command not found
我经常会做一些显而易见的事情,在 Google 中输入文件的名称以及“Debian”来查找软件包。
答案4
您可能还想看看 dlocate 包。它有许多有用的选项,可用于列出包和包内的文件。它最初被编写为 dpkg -L、dpkg -S 等的更快版本,但多年来已获得许多有用的功能(同时仍保持速度:)
免责声明:我是 dlocate 的作者和 debian 维护者。
顺便说一句,安装测试版或不稳定版的 dlocate 。它比稳定版有许多改进(特别是,它不再依赖于 GNU 定位)并且在稳定版中仍然可以正常工作(不依赖于任何新的/更新的库等)。