如何在 Linux 上检查软件包的变更日志
问题:当我在 Linux 上安装或升级软件包时,我想了解在安装之前或之后软件包中进行了哪些更改(例如,新功能或错误修复)。如何在 [Debian、Ubuntu、CentOS、Fedora] 上查看 (Deb/RPM) 软件包的变更日志?
当程序或库打包为 Deb 或 RPM 包进行分发时,包中会包含多个元数据文件。其中之一是 changelog
文件,它按时间倒序记录每次更新包时发生的更改。
因此,如果您想了解对即将安装或已安装的软件包进行了哪些更改,您可以查看该软件包的changelog
。 changelog
对于检查软件包是否包含针对最新发现的漏洞的安全补丁也很有用。以下是如何在基于 Debian 或基于 Red-Hat 的 Linux 上检查变更日志。
查看 Deb 包的变更日志
有多种方法可以在基于 Debian 的 Linux 上查看(已安装或已卸载)Deb 软件包的变更日志
。
方法一:apt-get
或 aptitude
最新的 apt-get 允许您检查软件包的更改日志,无论它是否安装在您的系统上。
$ apt-get changelog <package-name> | more

aptitude
是另一个命令行包管理器,它具有与 apt-get
相同的选项来显示包的更改日志。 aptitude
预装在除 Ubuntu 桌面版之外的所有基于 Debian 的发行版上。
$ aptitude changelog <package-name> | more
aptitude
的一个好处是它可以通过基于 ncurses
的用户界面进行补充。
要打开 ncurses
-enhanced aptitude
:
$ aptitude-curses
要在 aptitude-curses
上搜索特定包,请按 /
并输入其名称。在软件包的描述页面上,按 C
查看其变更日志
。

方法二:突触
如果您是基于 Debian/Ubuntu 的系统上的桌面用户,查看软件包的 changelog
的另一个选项是通过 synaptic
,它是 Deb 软件包的图形软件包管理工具。
您可以使用以下命令将其安装在基于 Debian 的系统上:
$ sudo apt-get install synaptic
启动 synaptic
后,您可以通过单击任何软件包描述页面上的获取变更日志
按钮轻松检查变更日志
。

方法三(特定于 Ubuntu):软件更新程序
另一种特定于 Ubuntu 桌面的 GUI 方法是通过软件更新程序。该 GUI 工具会提醒您任何新的 Ubuntu 软件更新,并根据您的命令安装它们。您可以使用软件更新程序来检查任何要安装的软件中所做的更改。请注意,软件更新程序无法像所有其他方法那样显示任何任意软件包的更改日志
。
一旦启动:
$ update-manager
它可以显示要安装(但尚未下载)的软件包的changelog
。

方法四:/usr/share/doc
如果您想检查任何已安装软件包的changelog
,您只需读取系统上安装的changelog
文件即可,如下所示。
$ zless /usr/share/doc/<package-name>/changelog.Debian.gz
$ zless /usr/share/doc/<package-name>/changelog.gz
查看 RPM 包的变更日志
有多种方法可以在基于 CentOS/RHEL/Fedora 的 Linux 上查看(已安装或已卸载)RPM 软件包的更改日志。
方法一:rpm
如果您想检查任何已安装软件包的changelog
,您可以使用rpm
命令,如下所示。
$ rpm -q --changelog <package-name> | more

方法二:repoquery
如果您想检查系统上未安装的软件包的changelog
,则不能使用rpm
命令。相反,您可以使用 repoquery
命令,无论是否安装了软件包,该命令都将起作用。您可以使用以下命令安装repoquery
:
$ sudo yum install yum-utils
要使用 repoquery
查看任意包的 changelog
:
$ repoquery --changelog <package-name> | more
方法三:yum-changelog
查看包的 changelog
的另一种方法是通过 yum
的 changelog
插件。按如下方式安装插件。
$ sudo yum install yum-changelog
现在,您可以使用 yum 命令在安装之前/之后查看各个软件包的变更日志。
$ yum changelog <package-name>
changelog
插件具有用于自定义更改日志视图的附加选项。例如:
要查看软件包的 5 个最新变更日志:
$ yum changelog 5 <package-name>
要查看自 2015/06/01 以来软件包的所有变更日志:
$ yum changelog "2015-06-01" <package-name>

方法四(Fedora 特定):dnf
上述所有三种方法仍然适用于 Fedora,但如果您已切换到 dnf
作为默认包管理器,则需要安装 yum
。
截至撰写本文时,dnf
尚未提供检查各个软件包的changelog
的选项。您可以使用 dnf 做的一件事是显示任何关键错误修复、安全补丁和增强功能的更新建议(类似于 Ubuntu 的软件更新程序)。要查看此类关键更新的变更日志,请运行:
$ dnf updateinfo info | more
