如何获取特定 Linux 发行版中提供的软件包列表

如何获取特定 Linux 发行版中提供的软件包列表

是否可以准确地知道 Linux Mint 中最初安装的软件包是什么?安装 Linux Mint Cinnamon 18.1 64 位后,我安装了官方存储库中的其他软件包,但不幸的是我现在不记得我安装了哪些软件包。现在我正在寻找一种方法来卸载发行版最初未安装的所有软件包。

答案1

如中所述这个论坛,linux mint发行版的解决方案可以总结如下:

  1. 获取文件文件系统清单可以在 卡斯帕Live Session ISO 中的文件夹。该文件列出了用于构建 linux mint 发行版的所有软件包。
  2. dpkg-query -W > installedPackages在终端中使用要在文件中列出的命令已安装的包,系统中当前安装的所有软件包。
  3. 使用该命令grep -Fxvf filesystem.manifest installedPackages > addedPackages仅列出系统管理员添加的软件包。

我们还可以在步骤3中使用:diff -y --suppress-common-lines filesystem.manifest installedPackages > comparePackages

以类似的方式,人们可以很容易地想象出适用于其他发行版的解决方案。我们只需根据需要替换步骤 1 即可。

答案2

对于基于 RPM 的发行版(例如 Ret Hat、Fedora 或 CentOS),您可以使用以下命令:

$ rpm -qa

对于像 Ubuntu 这样基于 DPKG 的发行版,薄荷或者 Debian,你可以使用命令:

$ dpkg -l

您还可以从这些命令管道 (|) 命令中过滤出输出列表,如下所示:

$ rpm -qa | grep python (if you are interested on python packages).

$ dpkg -l | grep python

答案3

对于 Debian 或基于 Debian 的系统(Ubuntu、Mint 等),您可以查看 /var/log/apt/history.*

当然,根据您的系统的年龄以及日志记录和日志轮换设置,您可能有也可能没有完整的日志。这是我的一个片段......

Start-Date: 2017-05-26  20:08:30
Commandline: apt-get install calibre
Requested-By: myusername (1000)
Install: libqt5clucene5:amd64 (5.5.1-3build1, automatic), libqt5svg5:amd64 (5.5.1-2build1, automatic), libqt5test5:amd64 (5.5.1+dfsg-16ubuntu7.2, automatic), libqt5help5:amd64 (5.5.1-3build1, automatic), python-cssutils:amd64 (1.0-4.1, automatic), python-cssselect:amd64 (0.9.1+git90c72b0-1, automatic), libpodofo0.9.3:amd64 (0.9.3-4, automatic), python-pyqt5.qtsvg:amd64 (5.5.1+dfsg-3ubuntu4, automatic), python-pyparsing:amd64 (2.0.3+dfsg1-1ubuntu0.1, automatic), python-apsw:amd64 (3.8.11.1-r1-1build1, automatic), python-repoze.lru:amd64 (0.6-6, automatic), python-mechanize:amd64 (1:0.2.5-3, automatic), python-pyqt5.qtwebkit:amd64 (5.5.1+dfsg-3ubuntu4, automatic), libchm1:amd64 (2:0.40a-3, automatic), calibre-bin:amd64 (2.55.0+dfsg-1, automatic), python-pyqt5:amd64 (5.5.1+dfsg-3ubuntu4, automatic), python-dateutil:amd64 (2.4.2-1, automatic), calibre:amd64 (2.55.0+dfsg-1), libqt5designer5:amd64 (5.5.1-3build1, automatic), python-cherrypy3:amd64 (3.5.0-2build1, automatic), python-routes:amd64 (2.2-1ubuntu2, automatic), python-markdown:amd64 (2.6.6-1, automatic)
End-Date: 2017-05-26  20:09:30

当然,对于任何发行版,您都可以启动一个新的虚拟机并使用 等查看安装的内容dpkgrpm并以这种方式获取默认值...

答案4

我想在 Ubuntu 22.04.3 上知道同样的事情,这一定很接近:

dpkg-query --status | perl -lane 'if(/^Package:/){$p=$F[1]}elsif(/^Priority:/){print "$p: $F[1]"}' | egrep required

根据来自的答案三重奏

相关内容