Answers:
这是我一起破解的另一种解决方案:whatchanged。
它以您感兴趣的二进制包的名称为唯一参数。以最近的SRU为例:
./whatchanged python_papyon
这是它的作用:
debdiff
然后将其输出到stdout(您可能需要重定向以便于阅读)它可能需要更好地处理某些在源代码检索期间可能出错的事情,流控制可能有点失误,并且必须有更优雅的版本检查方法,但到目前为止我在有限的测试中仍然可以正常工作。目前,将其视为一种可行的快速技巧,并且欢迎进行改进。如果对少数人有用,我将其推送到bzr存储库和/或创建一个Launchpad项目。
编辑:不是让它在pastebin上腐烂,而是为它启动了Launchpad项目。您可以使用来获得最新的主干版本bzr branch lp:whatchanged
。随时报告错误,进行分支,在Perl中重写等。
Afaik做到这一点的唯一方法是获取源代码并让差异化成为您自己。您可以使用apt-get获取用于编译软件包的实际源代码。外汇:
apt-get source gwibber=2.30.2-0ubuntu3 gwibber=2.30.0.1-0ubuntu1
diff -rupN gwibber-2.30.0.1/ gwibber-2.30.2/
这将以标准补丁程序格式打印所有文件之间的所有差异。
这是一种(可能不是最佳的)UDD方法:
为您的发行版(假定为Lucid)(假定如下)包含应包含最新SRU的Pull -updates分支:
bzr branch lp:ubuntu/lucid-updates/package_name
获取最新修订版引入的更改(假设如下),这些更改应对应于最新的SRU:
bzr diff -c`bzr revno`
apt-cache show package_name | grep Source:
。
<package_name>
这样获得的内容不适用于某些软件包:bzr branch lp:ubuntu/lucid-updates/$(apt-cache show linux-libc-dev | grep -m 1 Source: | awk "{print \$2}")
=> bzr:错误:提供了无效的URL来传输:“ bzr + ssh://bazaar.launchpad.net/+branch/ubuntu/lucid-updates/linux” :不支持的方案
可能不是“确切的”更改,但apt-listchanges
列出了自安装版本以来所做的更改的更改日志条目。
在完成下载新软件包之后但在安装开始之前,它通过添加一个步骤来工作,在该步骤中,它将向您显示要升级的每个软件包的changelog条目。然后,您可以继续或取消。您可以使用安装
sudo apt-get install apt-listchanges
然后用
sudo dpkg-reconfigure apt-listchanges