Apt-cache:如何列出所有已安装的软件包的版本号?


Answers:


53

尝试 dpkg -l

它列出了软件包,版本和简短描述。


1
我也喜欢,apt-show-versions因为它还显示了哪个是uptotdate
2015年

37

最简单的方法是使用dpkg,但它可能显示一些无关的软件包,并且会截断长软件包名称和版本号:

dpkg -l

要仅列出正确安装的软件包而不截断名称:

dpkg -l | grep '^ii'

要更好地控制输出格式,可以使用dpkg-query

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'

13

其他命令可以是:

apt-show-versions

它还为您提供有关程序包状态的信息(最新,可升级等)以及有关原产地分布的信息(乳清,洁西等)。人们可以轻松地过滤掉来自反向端口或其他奇异存储库的软件包。

该程序是单独包装的。首先安装:

apt-get install apt-show-versions

这非常好,因为它显示了可以将软件包升级到的版本。+1。
Randall Cook

结合使用apt-mark showmanual此工具,您可以轻松便捷地检索所有手动安装的软件包的版本,另请参阅此Askubuntu答案 apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions
Gregor

4

以下命令列出了软件包及其版本,此外,它还允许您使用pkg-selections.txt此处生成的文件,使用相同的软件包和版本设置系统。

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

如果软件包是自动安装的,则每行将包含软件包名称,版本和可选的“ A”。

来源:“ 克隆Debian系统-相同的软件包和版本 ”。还包含从中设置系统的脚本pkg-selections.txt


4

要列出每个已安装软件包的名称,请以任何用户身份键入:

dpkg --get-selections

您将获得如下输出:

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

要删除不必要的“安装”字符串,可以使用sed

dpkg --get-selections | sed 's:install$::'

如果要保存到名为InstalledPackages的文件中,请输入以下命令:

dpkg --get-selections | sed 's:install$::' > InstalledPackages

1

如果您无权访问实时系统,并且拥有根/分区的备份,则可以:

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

现在,它/root/installed_app包含所有已安装的软件包!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.