本质上我正在寻找的是 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 的内容