我一直用它dpkg -S <package_name>
来列出包的内容。有时我会通过管道来grep bin
快速扫描可执行文件。
我刚刚遇到了一个对我来说不起作用的情况:
$ which virtualenv
$ sudo apt-get install python-virtualenv
Reading package lists... Done
...
Setting up python-virtualenv (1.7.1.2-1) ...
$ which virtualenv
/usr/bin/virtualenv
$ dpkg -S /usr/bin/virtualenv
python-virtualenv: /usr/bin/virtualenv
$ dpkg -S python-virtualenv | grep bin
$
/usr/bin/virtualenv
似乎由 提供python-virtualenv
,但未在 提供的软件包内容中列出dpkg -S
。同时,传递/usr/bin/virtualenv
给dpkg -S
返回文件来自python-virtualenv
。你们能解释一下吗?
答案1
从该注释扩展(dpkg -S 仅显示哪个包提供了指定的文件):
是的,确实如此。因此,如果您执行 dpkg -S /bin/bash,它将报告 bash 包,而如果您执行 dpkg -S bash(假设 /bin 在您的路径中),它将执行相同的操作。
还请检查 apt-file,您必须先在大多数发行版上安装它,然后您可以运行“apt-file list”,它将显示您设置的存储库中的任何内容;即您不必先安装它。