找出命令来自哪个包

找出命令来自哪个包

是否有一种通用的方法来找出导致命令安装的包?

答案1

打开终端并尝试以下命令:

dpkg -S 'command name'

例如: dpkg -S /bin/ls

示例输出:

coreutils: /bin/ls

您还可以获取有关 coreutils 包的详细状态信息,输入:

 dpkg -s coreutils

示例输出:

Package: coreutils
Essential: yes
Status: install ok installed
Priority: required
Section: utils
Installed-Size: 9040
Maintainer: Ubuntu Core Developers 
Architecture: i386
Version: 5.97-5.3ubuntu3
Replaces: textutils, shellutils, fileutils, stat, debianutils (<= 2.3.1), dpkg (<< 1.13.2)
Provides: textutils, shellutils, fileutils
Pre-Depends: libacl1 (>= 2.2.11-1), libc6 (>= 2.6-1), libselinux1 (>= 2.0.15)
Conflicts: stat
Description: The GNU core utilities
 This package contains the essential basic system utilities.
 .
 Specifically, this package includes:
 basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir
 dircolors dirname du echo env expand expr factor false fmt fold groups head
 hostid id install join link ln logname ls md5sum mkdir mkfifo mknod mv nice nl
 nohup od paste pathchk pinky pr printenv printf ptx pwd readlink rm rmdir
 sha1sum seq shred sleep sort split stat stty sum sync tac tail tee test touch
 tr true tsort tty uname unexpand uniq unlink users vdir wc who whoami yes
Original-Maintainer: Michael Stone 

答案2

还有另一种方法,可能有点傻,但比以前的方法更快:)只需输入错误命令,您就会得到正确的命令名称和它来自的包。

示例输出:

pawel@pawel-desktop:/var/www$ sfn
No command 'sfn' found, did you mean:
 Command 'sn' from package 'mono-devel' (main)
 Command 'sfc' from package 'syfi-bin' (universe)
 Command 'svn' from package 'subversion' (main)
sfn: command not found

答案3

您也可以用一行来完成:

dpkg -S $(which command)

例如我想知道包中包含哪些内容ls

dpkg -S $(which ls)

输出如下:

coreutils: /bin/ls

所以现在我知道 ls 命令、/bin/ls 文件来自 coreutils 包。

答案4

现在采用一种完全不同的方法。

packages.ubuntu.com然后跟着你的直觉走。具体来说,向下滚动到“搜索包的内容”,然后输入文件名或系统命令。

相关内容