我试图找出如何比较 RPMS(当前已安装)和(在本地存储库中可用)的 2 个列表,并查看哪些 RPMS 已过时。我一直在修改正则表达式,但是 RPMS 有很多不同的命名标准,我无法找到一个好的列表来使用。我的驱动器上没有实际的 RPMS,所以我不能执行 rpm -qif。
pattern1 = re.compile(r'^([a-zA-Z0-9_\-\+]*)-([a-zA-Z0-9_\.]*)-([a-zA-Z0-9_\.]*)\.(.*)')
for rpm in listOfRpms:
packageInfo = pattern1.search(rpm[0]).groups()
print packageInfo
这适用于绝大多数但不是全部(2300 / 2400)
yum-metadata-parser-1.1.2-2.el5
('yum-metadata-parser', '1.1.2', '2', 'el5') **What I need
但是这些都不起作用,除非我打破了以前工作的一些其他东西..
- wvdial-1.54.0-3
- xdelta-1.1.3-20
- xdelta-1.1.3-20_2
- xmlsec1-1.2.6-3
- xmlsec1-1.2.6-3_2
- ypbind-1.17.2-13
- ypbind-1.17.2-8
- ypserv-2.13-14
- zip-2.3-27
- zlib-1.2.3-3
- zlib-1.2.3-3_2
- zsh-4.2.6-1