【问题标题】:How to compare installed rpm and latest rpm availble on repository?如何比较存储库上已安装的 rpm 和可用的最新 rpm?
【发布时间】:2018-08-05 15:10:18
【问题描述】:
我想找出存储库中安装的 xyz-1.0.rpm 和最新可用的 xyz-1.1.rpm 之间的区别。还想找出新 rpm 中发生的任何文件更改。我该怎么做?
请帮忙。
谢谢
【问题讨论】:
标签:
linux
centos
centos7
centos6
【解决方案1】:
您使用yum check-update 检查上述最新版本,并检查已安装rpm 的版本:rpm -qa | grep mypackage。
接下来使用yumdownloader 获取当前 rpm 和新 rpm 的副本(您可能需要使用 sudo,因为某些 TLS 证书可能只能由 root 访问)例如:
sudo yumdownloader mypackage-current.version
sudo yumdownloader mypackage-latest.version
然后安装pkgdiff:sudo yum install pkgdiff 并运行它以生成关于差异的 HTML 报告:
pkgdiff mypackage-current.version mypackage-latest.version
【解决方案2】:
- 检查变更日志
您可以查看 changelog 文件:
确保你有包裹yum-plugin-changelog
然后您可以使用此命令打印xyz 包的最后(最新)更改日志消息
# yum changelog 1 xyz | less
否则你可以使用rpm:
# rpm -q --changelog -p xyz-1.0.rpm | less
# rpm -q --changelog -p http://mirror.centos.org/centos/6/os/x86_64/Packages/xyz-1.1.rpm | less
- 比较文件列表
列出 rpm 中的文件:
下载xyz-1.1.rpm并列出xyz-1.1.txt中的文件
# rpm -qlp xyz-1.1.rpm > xyz-1.1.txt
然后列出安装包的文件xyz-1.0.rpm
# rpm -ql xyz > xyz-1.0.txt
最后:
# diff xyz-1.0.txt xyz-1.1.txt
;)