Answers:
grep-dctrl
及其派生工具提供了一种查询apt缓存文件的好方法。(您可以使用sudo apt-get install dctrl-tools在ubuntu上安装这些工具)
如果有可用(但不一定安装)软件包,则可以使用grep-available
。例如,列出所有可用的软件包:
grep-available -s Package .
编辑:
aptitude
可以通过启动它来显示“未安装的软件包”列表。
您还可以使用以下方法获取未安装软件包的列表aptitude
:
aptitude -F "%p" search "?not(?installed)"
注意,使用新的多体系结构软件包,您将获得此结果中列出的其他体系结构的软件包。例如,我得到:
aptitude -F "%p" search "?not(?installed)" | grep "^bash:"
bash:i386
我已经bash
安装了软件包,但是它是amd64版本,因为我的操作系统安装了Ubuntu Precise的amd64版本。如果您不想看到这些用于其他体系结构的软件包,则可以排除包含:
以下内容的行:
aptitude -F "%p" search "?not(?installed)" | grep -v ':'
apt-cache
用于查询程序包缓存:
apt-cache pkgnames | 分类
apt-cache搜索事物
apt-cache搜索-仅名称的东西
code
“ dpkg --get-selections | grep'[[:space:]] install $'| awk'{print $ 1}' > installed.txt”,发现重复。您提供的其他两个命令将不起作用,因为我不是在搜索特定的软件包,而是在搜索当前未安装的任何软件包。
使用apt-cache
用于此目的:
apt-cache search package
由于apt-cache
仅在系统上使用程序包缓存,因此请确保此缓存是最新的:
apt-get update
apt-file
如果您知道要搜索的文件名,也可以使用该实用程序。但是必须将此添加到系统中。例如:
apt-file search somefilename
我倾向于以apt-cache
下列方式之一使用:
apt-cache search package | sort | grep item
(这将向您显示在摘要或名称中实际包含项目的内容。)
apt-cache search thing | sort | less
(这个搜索的东西,然后排序,为愉快的观赏用less
。)
严格回答您的问题(要显示未安装的软件包的列表),请尝试使用
(根据下面的评论编辑)
# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'
不过,我不确定确切的语法,因为我正在Windows框上编写此代码,无法进行检查。也许尝试更改您的grep
'^ii'
,而不是'[ii]'
),你错过了上已安装但未配置,例如(如包iF
或iH
为例)。