我怎么知道apt-get包中包含哪些程序?
我想知道一些特定的软件包安装的内容,例如,在安装ncurses
,我发现TAB密钥扩展了:
sudo apt-get install ncurses-
显示:
ncurses-base ncurses-doc ncurses-hexedit ncurses-bin ncurses-examples ncurses-term
我怎么知道ncurses-term
installs呢? 我主要对程序感兴趣,但库和任何其他文件类型也可能有用。
如果可能, 命令行方法将是首选( 任何其他方法也被接受)。
以下是一些选项,这些选项将列出包安装的所有文件:
A.列出包中包含的所有文件
-
对于已安装的包
dpkg -L ncurses-term
-
对于所有包,是否安装
apt-file -F list ncurses-term
-F
模式匹配,以便只返回其名称匹配的包。 您可能需要使用sudo apt-get install apt-file
,然后使用sudo apt-file update
更新其数据库。
B.仅列出包中包含的可执行文件
-
对于已安装的包
只需安装
dlocate
(sudo apt-get dlocate
)并运行:dlocate -lsbin ncurses-term
如
man dlocate
:-lsbin列出包中可执行文件(如果有)的完整路径/文件名
如果您不想安装其他软件包,可以手动执行此操作。 只需收集文件列表,找到其中包含可执行位的文件:
apt-file -F list ncurses-term | cut -d ' ' -f 2 | while read file; do [[ -x $file && -f $file ]] && echo "$file"; done
上面的小脚本将仅打印路径(
cut -d ' ' -f 2
),然后通过while
循环检查文件是否可执行(-x $file
),如果它是常规文件,则没有目录或符号链接(-f $file
)并仅在通过两个测试时打印其名称。 -
对于所有包,是否安装
我不知道列出只包含在未安装的软件包中的可执行文件。 但是,由于大多数可执行文件都安装在
bin
目录中,因此您可以通过解析输出来获取大部分可执行文件:apt-file -F list ncurses-term | grep -Ew "bin|sbin"
-w
选项匹配整个单词,因此您不会安装任何东西,例如,trashbin
或其他任何东西。
注意 :以上命令都不会为ncurses-term
生成任何输出,但这是因为此程序包不会安装任何可执行文件。 尽管如此,命令还是可以使用不同的包。
你可以使用apt-file:
sudo apt-file update apt-file list package_name
您可以使用浏览器(因此无需访问APT系统)。 例如,要列出包“ncurses-term”的文件内容,只需键入
https://packages.debian.org/wheezy/all/ncurses-term/filelist
进入你的浏览器的地址栏(根据需要替换“wheezy”)为Debian或
http://packages.ubuntu.com/saucy/all/ncurses-term/filelist
对于Ubuntu(根据需要替换“saucy”)。