我想知道一些具体包裹安装,例如,在安装时ncurses
,我发现TAB键展开:
sudo apt-get install ncurses-
以显示:
ncurses-base ncurses-doc ncurses-hexedit
ncurses-bin ncurses-examples ncurses-term
我怎么知道要ncurses-term
安装什么?我主要对程序感兴趣,但是库和任何其他文件类型也可能有用。
命令行如果可能的话,方法将是首选(任何其他人也接受)。
答案1
这里有几个选项,这些将列出全部包中安装的文件:
A. 列出包中包含的所有文件
对于已安装的软件包
dpkg -L ncurses-term
对于所有软件包(无论是否安装)
apt-file -F list ncurses-term
模式匹配的轮-F
次,以便只有包精确的返回名称匹配项。您可能需要安装apt-file
,sudo apt-get install apt-file
然后使用 更新其数据库sudo apt-file update
。
B. 仅列出包中包含的可执行文件
- 对于已安装的软件包
只需安装dlocate
(sudo apt-get install 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
但这是因为此包未安装任何可执行文件。但命令仍然有效,请尝试使用其他包。
答案2
您可以使用 apt-file:
sudo apt-file update
apt-file list package_name
答案3
您可以使用浏览器(因此不需要访问 APT 系统)。例如,要列出包“ncurses-term”的文件内容,只需输入
https://packages.debian.org/wheezy/all/ncurses-term/filelist
进入 Debian 浏览器的地址栏(根据需要替换“wheezy”)或
http://packages.ubuntu.com/saucy/all/ncurses-term/filelist
适用于 Ubuntu(根据需要替换“saucy”)。