可能重复:
如何找到提供文件的包?
当您在 Ubuntu 的终端中输入尚未安装但可以通过包提供的命令时,Ubuntu 会建议安装该包。
我该如何反过来做?如何查找我在终端中输入的命令是由哪个软件包提供的?
dpkg -S /usr/bin/termit
返回
termit: /usr/bin/termit
apt-file 查找 /usr/bin/termit
返回
termit: /usr/bin/termit
termit
包提供的终端仿真器在哪里termit
。
答案1
如果你已经apt-file
安装并配置,你可以执行以下操作:
apt-file find <filename>
当您寻找尚未安装的命令时,这也很方便,例如,如果您根据网络上看到的使用您没有的命令的说明进行操作。
如果只想查询已安装的包,可以使用:
dpkg -S <pattern>
例如对于已安装的文件:
% apt-file find /usr/bin/oodraw
openoffice.org-draw: /usr/bin/oodraw
% dpkg -S oodraw
openoffice.org-draw: /usr/share/man/man1/oodraw.1.gz
openoffice.org-draw: /usr/bin/oodraw
对于未安装的文件:
% dpkg -S /usr/bin/python3.1
dpkg: /usr/bin/python3.1 not found.
% apt-file find /usr/bin/python3.1
python3.1-dbg: /usr/bin/python3.1-dbg
python3.1-dbg: /usr/bin/python3.1-dbg-config
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1-dbg-gdb.py
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1-gdb.py
python3.1-dev: /usr/bin/python3.1-config
python3.1-minimal: /usr/bin/python3.1
答案2
如果您正在使用 /usr/bin/ls(您可以通过命令找到可执行文件的绝对路径which
),您可以通过运行以下命令来找到所提供的包:
dpkg -S /usr/bin/ls
或者,运行
dpkg -S ls
将在所有已安装的软件包中搜索名为ls
(或类似的启发式) 的文件并返回它们的列表,格式为PACKAGE: /path/to/file
。