如何获取 Debian 中可用(即已卸载)软件包的列表?

如何获取 Debian 中可用(即已卸载)软件包的列表?

本质上我正在寻找的是 Debian 的等价物:

yum list available

显示哪些软件包可用(尽管目前尚未安装)。我更喜欢可以从控制台运行的程序,因为它在远程服务器上。谢谢。

答案1

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 版本,因为我的操作系统安装的是 amd64 版本的 Ubuntu Precise。如果您不想看到其他架构的这些软件包,您可以排除包含以下内容的行:

aptitude -F "%p" search "?not(?installed)"  | grep -v ':'

答案2

apt-cache用于查询包缓存:

apt-cache pkgnames | 排序
apt-cache 搜索事物
apt-cache 搜索 --names-only事物

答案3

我的观点是使用默认安装的命令,如果没有特殊原因,则避免使用额外的包。

在我的 Debian 中,使用 GNU bash 这些简单的命令

apt list
apt list --all-versions

给出任何内容的列表(已安装和未安装)。然后我可以使用 grep "installed" 或 grep -v "installed" 来限制结果。它还可以与一个或多个软件包名称组合(接受通配符)。

开关“-all-versions”在输出中为每个包版本(稳定、测试、不稳定、实验)提供单独的行。

简单的“apt 列表”仅提供一个(最高优先级)版本。

答案4

严格地考虑你的问题(你想显示未安装软件包的列表),尝试使用

(根据以下评论进行编辑)

# apt-get update
# dpkg -l '*' | egrep --invert-match '^i'

不过我不确定确切的语法,因为我是在 Windows 上编写的,没有办法检查。也许可以尝试更改 grep 的内容

相关内容