问题:当我在Linux上安装或更新软件包时,我想看看这个软件包有哪些改变(添加了什么新特性、修复了什么bug等),然后再决定安不安装这个软件包。那么问题来了,怎么查看Deb/RPM(Debian, Ubuntu, CentOS, Fedora)软件包的changelog呢?
当一个软件或库使用Deb或RPM打包发布时,包中包含一些元数据(metadata)文件。其中有一个就是更新日志,里面按顺序记录了每次软件更新的changelog。
下面使用几个例子说明:
基于Debian的发行版(Deb包)
在基于Debian的发行版上有几种方法查看软件包更新日志(安装的或没安装的)。
方法一:apt-get 或 aptitude
使用apt-get,使用命令如下:
$ sudo apt-get changelog <软件包的名字> | more
aptitude是另一个包管理工具,它使用的选项和apt-get一样。aptitude处理Ubuntu都是预装的。
$ sudo apt-get install aptitude
$ aptitude changelog <软件包的名字> | more
aptitude的优点是支持基于ncurses的用户图形接口。打开:
$ aptitude-curses
方法二:Synaptic
如果你想使用带图形界面的工具,可以使用Synaptic, Deb包的图形管理工具。安装
$ sudo apt-get install synaptic
方法三:/usr/share/doc
对于已安装的软件包,可以查看/usr/share/doc/中的文档,例如:
$ zless /usr/share/doc/<软件包的名字>/changelog.Debian.gz
$ zless /usr/share/doc/python/changelog.Debian.gz
基于Red Hat的发行版(RPM包)
在基于Red Hat的发行版上有几种方法查看软件包更新日志(安装的或没安装的)。
方法一:rpm命令
对于安装的包,使用rpm命令:
$ sudo rpm -q --changelog <软件包的名字> | more
方法二:repoquery
如果软件包还没安装,想要查看远程仓库中软件包,可以使用repoquery命令。
安装repoquery:
$ sudo yum install yum-utils
查看更新日志:
$ repoquery --changelog <软件包的名字> | more
方法三:yum-changelog
安装yum-changelog:
$ sudo yum install yum-changelog
查看更新日志:
$ yum changelog <软件包的名字>
查看最近的5条记录:
$ yum changelog 5 <软件包的名字>
指定从某个日期开始的更新日志:
$ yum changelog "2016-06-26" <软件包的名字>
方法四:dnf,针对Fedora
$ dnf updateinfo info | more