在哪里可以找到在初始安装后已安装的软件包的完整列表?


8

我要保存已安装软件包的列表。我认为最好列出所有内容并将其与默认设置进行比较。

编辑:澄清:我不想获取当前已安装的已安装软件包的列表。而是我想获取自默认安装以来添加的软件包的列表。



2
你误解了我的问题。我想那个包安装(无默认选项)。因此,不是当前安装的软件包。
塔玛斯·塞莱伊(TamásSzelei)2011年

好!很抱歉造成误解:) :)
Rinzwind

Answers:


4

要么

sudo dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

要么

sudo sed -ne '/^Package: \(.*\)/{s//\1/;h;};/^Installed-Size: \(.*\)/{s//\1/;G;s/\n/ /;p;}' /var/lib/dpkg/status | sort -n

要么

sudo dpkg --get-selections

将列出所有软件包。

只需将输出重新路由到文件即可。第1行的第2行将按从小到大的顺序列出该文件,并在软件包名称的前面显示其大小。第三位按字母顺序排列。


@Rinzwind,您好:您的解决方案为我提供了现在安装的所有软件包,因为与给出的软件包数量相同dpkg -l。但是,如果我只想要那些在Ubuntu安装后安装的软件包,该怎么办?我想这些软件包的数量必须少于dpkg -l
ddas

您是否曾经删除过缓存?@ddas,如果不是所有的DEB都在/ var / cache / apt / archives /中
Rinzwind '16

5

使用打开ISO CD映像文件file-roller并解压缩文件:

casper / filesystem.manifest-desktop

它包含安装后安装的所有软件包。

请记住,您还可以在安装过程中下载更新和封闭源代码软件,因此您需要分别检查这些软件包。

Ubuntu 12.04

在Ubuntu 12.04中,该列表不再在单个文件中提供。相反,您需要解压缩两个文件:

  1. 文件系统清单
  2. filesystem.manifest-删除

并从前者中删除后者中的软件包:

comm -3 <(cat filesystem.manifest | awk '{print $1}' | sort) <(cat filesystem.manifest-remove | sort) > default.txt

您可以以此为基础确定自安装以来已添加的内容(有关详细信息,请参见此答案)。


如果有人有更好的建议,我会稍等,但这似乎足够好。
塔玛斯·塞莱伊(TamásSzelei)2011年

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.