Answers:
dpkg -S /usr/bin/ls
'dpkg -S'只匹配您提供的字符串,因此仅使用'ls'作为参数将匹配文件名中任何带有'ls'的软件包中的任何文件。因此,通常最好使用绝对路径。您可以在第二个示例中看到,已知有dpkg的12,000个文件与裸字符串“ ls”匹配。
apt-file
,如果通过dpkg -i
!手动安装了软件包,它还会将软件包查找到文件中。
dpkg-query: no path found matching pattern /usr/bin/java
,尽管有档案/usr/bin/java
packages.debian.org是我经常用来完成此任务的工具。它比apt-file优越,因为它也可以找到文件名的一部分。它还链接到主软件包列表,其中将列出描述,错误等。总而言之,这是一个不错的网站。在命令行上没有那么有用,但是仍然很有用。
为了提高速度,我将网址添加为书签:
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
在Firefox中,并添加了“ debfind”作为关键字(在书签管理器中单击“更多”,将其高亮显示),因此我只需键入“ debfind”即可。您可以将其“套件”从不稳定更改为稳定,也可以根据需要针对其他版本的发行版进行测试。
您也可以使用dlocate。从手册页;
$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
dlocate
也是我最喜欢的方法,非常可靠。
dlocate
除非您sudo update-dlocatedb
先运行,否则@Avio 不会找到最近安装的软件包。该命令每天自动在/etc/cron.daily/dlocate中运行
我发现瓦吉格...
wajig whichpackage /path/to/file
例如。
wajig whichpackage /etc/apt/sources.list
Wajig是一个方便的命令行或控制台工具,它包装了您从未学过的所有apt-get,dpkg优点。。
要安装wajig,请使用:
apt-get install wajig
该命令“哪个包”本身取决于apt-file
您仍然需要先更新其数据库,然后才能使用它:-我尚不知道wajig update whixh是否执行apt-get更新也会更新文件缓存,但我希望可以。
sudo wajig update
sudo apt-file update
(还有“超级牛,复活节”吗?!)
Simmilar是jamuraa对Debian的回答,对于Ubuntu,也可以访问http://packages.ubuntu.com/。您必须向下滚动一点,以找到“搜索包内容”搜索框,您可以在其中输入文件的路径。
尝试使用http://www.kodkast.com/applications/find-which-package-file-belongs-to搜索文件
这是一个用于搜索包含在不同rpms / linux软件包中的文件的应用程序,当您甚至没有在计算机上安装rpm时,它都非常有用。
command-notfound软件包为您提供了有关潜在命令和debian软件包名称的提示。通过在bash shell中键入命令并查看其输出来工作。
例如,如果命令名称已知:
zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed. To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found
如果命令未知,那么将进行一些猜测:
zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
Command 'lsh' from package 'lsh-client' (main)
Command 'osh' from package 'omake' (main)
Command 'ysh' from package 'libyaml-shell-perl' (main)
Command 'ssh' from package 'openssh-client' (main)
Command 'vsh' from package 'crystalspace' (main)
Command 'dsh' from package 'dsh' (main)
Command 'ash' from package 'ash' (main)
Command 'msh' from package 'nmh' (main)
Command 'zssh' from package 'zssh' (main)
Command 'qsh' from package 'gridengine-client' (main)
Command 'sh' from package 'dash' (main)
Command 'bsh' from package 'bsh' (main)
zsh: command not found
-h
或--help
会有所帮助。如果建议-h
在末尾添加该内容足以确保安全,那么即使如此,这也不是实现OP要求的好方法。