使用 python 检查 yum 安全更新
Check yum security updates using python
使用以下代码我可以列出所有有可用更新的包:
import yum
base = yum.YumBase()
package_list = base.doPackageLists(pkgnarrow='updates', patterns='', ignore_case=True)
if package_list.updates:
for pkg in package_list.updates:
print(pkg)
但我真正想要的是仅列出安全更新(相当于 yum check-update --security)。
很遗憾,我找不到有关 yum 库的正确文档。有人可以在正确的方向上帮助我吗?
简短回答,您应该使用 UpdateMetadata
根据每个通知的元数据过滤结果。
import yum
from yum.update_md import UpdateMetadata
y = yum.YumBase()
ygh = y.doPackageLists('updates')
x = UpdateMetadata()
for i in ygh.updates:
md = x.get_notice((i.name, i.ver, i.rel))
if md:
md = md.get_metadata()
if sec_only:
if md['type'] != 'security':
continue
(上面的代码只是链接代码的一部分,带有相关位)
使用以下代码我可以列出所有有可用更新的包:
import yum
base = yum.YumBase()
package_list = base.doPackageLists(pkgnarrow='updates', patterns='', ignore_case=True)
if package_list.updates:
for pkg in package_list.updates:
print(pkg)
但我真正想要的是仅列出安全更新(相当于 yum check-update --security)。
很遗憾,我找不到有关 yum 库的正确文档。有人可以在正确的方向上帮助我吗?
简短回答,您应该使用 UpdateMetadata
根据每个通知的元数据过滤结果。
import yum
from yum.update_md import UpdateMetadata
y = yum.YumBase()
ygh = y.doPackageLists('updates')
x = UpdateMetadata()
for i in ygh.updates:
md = x.get_notice((i.name, i.ver, i.rel))
if md:
md = md.get_metadata()
if sec_only:
if md['type'] != 'security':
continue
(上面的代码只是链接代码的一部分,带有相关位)