确定软件包是否已安装Yum Python API?


问题内容

TLDR ; 我需要给定一个包名称(例如,“ make”)的简单Python调用,以查看它是否已安装;如果没有,请安装它(我可以做后一部分)。

问题:

因此,有中给出了几个代码示例http://yum.baseurl.org/wiki/YumCodeSnippets,但比内IPython的周围kludging在什么每个方法的猜测等,似乎没有要为任何实际的文件适用于yum的Python
API。显然所有部落知识。

[编辑] 显然我是偶然发现了 API文档 (当然,在收到可接受的答案之后)。它不是从主页链接的,但是在这里供以后参考:http:
//yum.baseurl.org/api/yum/

我需要做什么:

我有一个依赖于其他系统软件包(make,gcc等)的部署配置脚本。我知道我可以像这样安装它们:http:
//yum.baseurl.org/wiki/YumCodeSnippet/SimplestTransaction,但我想选择是否在安装之前先查询它们是否已安装,因此我可以如果不存在软件包,则失败的另一种选择是强制安装。这样做的正确调用是什么(或者更好的方法是,有没有人真正烦恼过在代码示例之外正确地记录API?)

在这个项目之前,我从未接触过Python,我真的很喜欢它,但是…一些模块文档比骑独角兽的妖精更难以捉摸。


问题答案:
import yum

yb = yum.YumBase()
if yb.rpmdb.searchNevra(name='make'):
   print "installed"
else:
   print "not installed"