Задача получить список пакетов входящих в опеределённую группу из определённого репозитория. Делаю это всё на 2.7 питоне. Код:
import yum
yb = yum.YumBase()
yb.disablePlugins()
yb.setCacheDir()
repos = yb.repos.listEnabled()
destdir="/tmp/repo"
arch = "x86_64"
repoid="Myrepo"
baseurl="http://mirror.yandex.ru/centos/6.6/os/%s" % (arch)
imgurl="%s/images/install.img" % (baseurl)
repopath="Myrepo"
cachedir = "/tmp" #yum.misc.getCacheDir()
yb.repos.setCacheDir(cachedir)
newrepo = yum.yumRepo.YumRepository(repoid)
newrepo.name = repopath
newrepo.baseurl = baseurl
newrepo.mirrorlist = None
newrepo.basecachedir = cachedir
newrepo.metadata_expire = 0
newrepo.timestamp_check = False
yb.repos.add(newrepo)
yb.repos.enableRepo(newrepo.id)
for name in repoid:
yb.repos.enableRepo(name + ',')
yb.repos.doSetup()
yb.cleanRpmDB()
XM = yb.selectGroup(grpid='base')
for line in XM:
print line
При этом базовая система установлена, соотвественно пакеты из группы тоже установлены. В качестве вывода вижу:
Загружены модули: langpacks
Warning: Group base does not have any packages to install.
Process finished with exit code 0
Если запускать из консоли как python myscript.py то в консоль сыпятся сообщения что пакет уже установлен и в конце строка с Варнингом. При этом если изменить группу к примеру на «gnome» или любое другое что не установлено, выводится список пакетов. Может кто в курсе как обратиься к объекту групп листа и получить от него все пакеты с типом mandatory и default?