有没有办法使用 dpkg 查看软件包不同版本之间的更改日志?
如果我想知道为什么“passwd”在最近的更新中被升级,有没有办法使用 dpkg 来查看发生了什么变化?
$ dpkg -l passwd
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii passwd 1:4.2-3.1 amd64 change and administer password an
正在升级至1:4.2-3.3...
我知道 Debian 可以看一下包装说明并从那里开始链接Debian 变更日志。
但这并不适用于所有基于 deb 的发行版,而且快速浏览新内容会很尴尬。
答案1
dpkg 不提供任何读取软件包变更日志的工具。您应该解压缩包并阅读更改日志
dpkg -X <package.deb> <folder>
然后您可以使用 dpkg-parsechangelog 实用程序读取更改日志
dpkg-parsechangelog -l <folder>/usr/share/doc/<package>/changelog.Debian.gz
因为这真的很痛苦,如果你的发行版正在使用 apt-get 你可以使用
apt-get changelog <packagename>
或者
apt changelog <packagename>
答案2
如果安装了该软件包,您只需访问/usr/share/doc/<package_name>/
即可找到上游ChangeLog
和 Debian(软件包)变更日志。
这些文件可能被 gzip 压缩,在这种情况下,您可以用来zless
查看它们。
答案3
如果我想知道为什么“passwd”在最近的更新中被升级,有没有办法使用 dpkg 来查看发生了什么变化?
apt 列表更改涵盖了这个特定的用例。您可以查看与升级对应的变更日志条目。
如果您想查看未安装的软件包的更改日志,最简单的方法可能就是在线查看。例如转到https://packages.qa.debian.org,输入所需的源包(例如 dpkg),您将在右侧的“链接”下看到更改日志。在这种情况下,您最终会到达http://metadata.ftp-master.debian.org/changelogs/main/d/dpkg/unstable_changelog。
当然,这个特定站点只能用于 Debian。
答案4
嘿我知道这是非常老了,但我最终来到了这里,这个问题对于学习 Linux 的人来说非常有趣。所以请原谅我。
可用命令
如果安装了该包,您有一些无需解压即可读取的方法:
1.无兹: 如果你输入曼兹莱斯你会读到:
zless - 文件细读过滤器,用于压缩文本的 CRT 查看。
2.zcat: 从男人zcat:
zcat 与gunzip -c 相同。 (在某些系统上,zcat 可能安装为 gzcat 以保留要压缩的原始链接。)zcat 解压缩命令行或其标准输入上的文件列表,并将未压缩的数据写入标准输出。 zcat 将解压缩具有正确幻数的文件,无论它们是否具有 .gz 后缀。
3.gunzip -c <路径/文件> |较少的:从上面的 zcat 中我们了解到 zcat 只是“gunzip -c”的别名。所以你可以使用gunzip加上“less”。
搜索
找到您的变更日志。它的传统名称是:
- changelog.gz(程序本身)
- changelog.Debian.gz(修复软件包问题)
- NEWS.gz(与changelog.gz相同)
- NEWS.Debian.gz(与 changelog.Debian.gz 相同)
更改日志始终安装在 中/usr/share/doc
,因此您可以列出该文件夹以发现更改日志的名称。让我们以包passwd
为例。
$ ls -l /usr/share/doc/passwd
total 24
-rw-r--r-- 1 root root 2279 nov 24 09:05 changelog.Debian.gz
-rw-r--r-- 1 root root 5153 nov 11 2021 copyright
drwxr-xr-x 1 root root 36 dez 17 12:13 examples
-rw-r--r-- 1 root root 801 nov 11 2021 NEWS.Debian.gz
-rw-r--r-- 1 root root 2075 nov 11 2021 README.Debian
-rw-r--r-- 1 root root 1020 nov 11 2021 TODO.Debian
现在一一阅读(zcat 或 zless):
$ zcat /usr/share/doc/passwd/changelog.Debian.gz
$ zcat /usr/share/doc/passwd/NEWS.Debian.gz
或者,您不知道更改日志位于 /usr/share/doc 中,因此搜索它,然后列出,最后阅读:
$ find / -type d -name passwd 2>/dev/null
/usr/share/doc/passwd
这2>/dev/null
是为了避免所有那些烦人的Permission denied
消息。