Њам

Интеракција са ИУМ-ом на ЦентОС-у помоћу Питхона

Интеракција са ИУМ-ом на ЦентОС-у помоћу Питхона

Шта је ИУМ?

ИУМ је алат за управљање који је доступан на дистрибуцијама РедХат и ЦентОС Линук.  ИУМ (Иелловдог Упдатер Модифиед) зависи од РПМ (Ред Хат Пацкаге Манагер) пакета и створен је да омогући управљање пакетима као деловима већег система софтверских спремишта уместо појединачних датотека пакета. ИУМ је интерактивни менаџер пакета који може аутоматски да врши анализу зависности и ажурирања система, заједно са инсталирањем нових пакета, уклањањем старих пакета, извршавањем упита на постојећим пакетима итд. Да бисте сазнали више о ИУМ-у, кликните на овде.

У овом чланку ћемо размотрити методе приступа иум функционалности помоћу Питхон програма и сазнаћемо како то може бити корисно. За ово упутство користићемо ЦЕНТОС 7 са покренутим питхон 2.7.к и претпоставио би да је упознат са основним питонским карактеристикама.

Програмирање са ИУМ-ом

Почнимо да учимо о програмирању иум-а користећи питхон гледајући једноставну питхон скрипту која користи иум за постављање упита и штампање имена пакета. Ево га:

импорт ос
импорт сис
импорт иум
иб = њам.ИумБасе ()
иб.сетЦацхеДир ()
резултати = иб.пкгСацк.ретурнНевестБиНамеАрцх (обрасци = ["питхон", "перл"])
за пкг у резултатима:
испиши "% с% с (% с) \ н \ т% с"% (пкг.име, пкг.верзија, стр.лук, кг.резиме)

Ова скрипта претражује ИУМ спремишта за пакете који се подударају са именом „питхон“ и исписује информације о подударним пакетима. Испитаћемо ову скрипту ред по ред.

Да бисмо започели програмирање са ИУМ-ом, морамо да увозимо 'иум' питхон пакет - ово је подразумевано инсталирано у ЦЕНТОС 7. Уз 'иум' обично су нам потребни и 'ос' и 'сис' пакети - па би типични питхон програм који користи иум почео са следећа 3 реда.

импорт ос
импорт сис
импорт иум

Даље, да бисте креирали иум инстанцу за рад, укључите доњи ред.

иб = њам.ИумБасе ()

Ово је скоро прва линија функционалног кода у било ком питхон програму који користи иум. То је зато што је ИумБасе основна класа која садржи методе и објекте потребне за извршавање свих функција управљања пакетима користећи иум. Детаљну структуру класе ИумБасе потражите у њеној документацији.

Испитивање ИУМ конфигурације

Једном када инстанца ИумБасе буде доступна, можемо је користити за инспекцију иум конфигурације. Испод је табела са пописом популарних наредби за навођење детаља о конфигурацији.

Конфигурација Употреба
принт иб.цонф.цонфиг_филе_патх Одштампајте путању до датотеке за иум-ову конфигурациону датотеку.
принт иб.цонф.лог фајл За испис путање датотеке дневника
јер ја у иб.цонф.репосдир: принт и За испис директорија и датотека за спремишта
принт иб.цонф.скип_брокен Вредност је обично нетачна. Када се постави на труе, иум наредбе ће се понашати као да је наведен параметар -скип-брокен.
принт иб.цонф.левеллевел Да бисте поставили ниво грешака које желите да се штампају на стандардном излазу. То је вредност између 0-10, где је 0 само критично, док је 10 све што укључује отклањање грешака. Подразумевано је постављено на 2, али га можете поништити. Ако ћете покретати скрипту, било би добро поставити ово на 0. Можете да подесите на већу вредност попут 3 када отклањате грешке у самој скрипти.

Упит за пакете

Враћајући се на нашу скрипту, видимо да следећи ред кода поставља нови Цацхе Дирецтори за иум, тако да извршава све задатке као нормалан корисник (и донекле као роот корисник - и даље неће моћи да мења податке у иумдб или рпмдб на пример).

иб.сетЦацхеДир ()

Пошто смо сада креирали прави иум објекат, можемо приступити атрибутима пкгСацк, рпмдб и репос. То нам омогућава да извршимо следеће функције:

иб.пкгСацк - може се користити за извршавање упита на свим омогућеним спремиштима

иб.рпмдб - може се користити за извршавање упита на инсталираним пакетима

иб.репос - набавите објекат РепоситориСтораге који се може користити за постављање одређених конфигурација за репозиције и може се користити за омогућавање или онемогућавање спремишта - е.г., иб.репос.енаблеРепо (), иб.репос.дисаблеРепо () & иб.репос.листЕнаблед (). О томе више касније.

За сада ћемо се позабавити својствима пкгСацк и рпмдб. Можемо претраживати ИУМ спремишта и локално инсталиране пакете позивајући једну од неколико функција које пружају атрибути пкгСацк и рпмдб. Ове функције враћају „објекте пакета“ који садрже информације о пакету. Неке корисне функције за преузимање објеката пакета су: ретурнПацкагес (), сеарцхПримариФиелдс (), сеацхНевра (), сеацхНаме (), ретурнНевестБиНамеАрцх (). Наша скрипта користи методу ретурнНевстБиНамеАрцх да би добила објекте пакета који одговарају низу узорака „питхон“ или „перл“.

Имајте на уму да су имена метода иста за оба иб.рпмдб и иб.пкгСацк. Међутим, они извршавају упите на различитим доменима - рпмдб претражује локално инсталирану базу података РПМ пакета, док пкгСацк претражује ИУМ спремишта.

Могли бисмо, слично, навести и инсталиране велике пакете (где велики значе, рецимо да је величина> 10МБ). Иум код је:

плист = иб.рпмдб.ретурнПацкагес ()
л_плист = [п за п у плисту ако је п.величина> 1024 * 1024 * 10]
принт "Инсталирани пакети величине> 10МБ:"
за п у л_плист:
одштампај "% с:% сМБ"% (пкг, пкг.величина / (1024 * 1024))

То је у основи суштина употребе питхона за приступ иум-у. У остатку чланка ћемо дубље истражити нијансе АПИ-ја иум модула и испробати још неке радње компликовања попут инсталирања / деинсталирања пакета или постављања сопственог спремишта.

Невра, ПРЦО и Туплес

У заглављу нема грешке у куцању - ово су неки термини специфични за иум који олакшавају идентификовање пакета и зависности, као и за њихово комуницирање са другим корисницима иум-а, укључујући ваше питхон скрипте.

НЕВРА је скраћеница од Назив, Епоха, Верзија, Издање, Архитектура и користи се за јединствену идентификацију укуса или инстанце пакета - ових пет параметара недвосмислено упућују на једну јединствену инстанцу пакета. На пример, пакет под називом „питхон“ може имати више верзија попут 2.6, 2.7 итд., и свака верзија би могла да има више издања за различите архитектуре е.г., к86_64, и386 (Имајте на уму да се реч архитектура овде односи на архитектуру процесора - нпр.г., и386 је 32-битни Интел). Заједно ових пет представља јединствену комбинацију и назива се невра.

ПРЦО је скраћеница за Провидес / Рекуирес / Цонфлицтс / Абсолете који сумирају метаподатке о управљању пакетом за објект пакета.

Одређене АПИ методе у пкгСацк / рпмдб, попут иб.пкгСацк.симплеПкгЛист (), иб.пкгСацк.пакетиБиТупле () итд., враћају информације о НЕВРА-и или ПРЦО-у као питхон корице, а не као пкгобјецтс

Наведите и инсталирајте пакете

Попут употребе команде „иум лист“, можемо користити и „иб“.доПацкагеЛистс () 'за попис свих инсталираних пакета / пакета доступних за инсталацију / поновну инсталацију.

плист = иб.доПацкагеЛистс (обрасци = сис.аргв [1:])

Сада плист садржи 3 листе пакета - по једну за инсталирани пакет, инсталациони пакет и оне доступне за поновну инсталацију. Можемо штампати / инсталирати / поново инсталирати пакете помоћу доњег кода:

ако пл.инсталиран:
принт "Инсталирани пакети"
за пкг у сортираном (пл.инсталиран):
принт пкг
ако је пл.доступан:
принт "Доступни пакети"
за пкг у сортираном (пл.доступан):
штампа пкг, пкг.репо
ако је пл.реинсталл_аваилабле:
принт "Поново инсталирај доступне пакете"
за пкг у сортираном (пл.реинсталл_аваилабле):
штампа пкг, пкг.репо

Слично попису свих инсталираних пакета које можемо користити:

одштампајте „\ н“.придружи се ([к.назив за к у иб.рпмдб.ретурнПацкагес ()])

Инсталирање пакета

Инсталирање пакета укључује подешавање и извршавање трансакције. За обављање једноставних радњи попут инсталирања / уклањања користимо 'иб.инсталирај 'или' иб.уклони 'односно за подешавање трансакције. Тада позивамо 'иб.ресолДепс () 'за покретање решавања зависности и' иб.процессТрансацтион () 'да нареди ИУМ-у да настави и изврши трансакцију.

Сви кораци, али последњи, су припремни и само позив методе процессТрансацтион () заправо резултира инсталацијом / деинсталацијом. Испод је исечак кода за инсталацију пакета.

иб = њам.ИумБасе ()
иб.инсталл (наме = 'име пакета')
иб.ресолДепс ()
иб.процессТрансацтион ()

Током обављања таквих трансакција, 'иб.Објекат тсИнфо 'садржи информације о тренутном статусу трансакције док се не изврши. Више о томе можете прочитати у његовој документацији.

Поставите спремиште на произвољну локацију

Испод скрипта вам помаже да подесите иум за приступ спремишту на произвољној локацији. Очекује да се УРЛ спремишта проследи као аргумент наредбеног ретка.

урл = сис.аргв [1]
иб = њам.ИумБасе ()
ако не иб.сетЦацхеДир (сила = Тачно, поновна употреба = Нетачно):
принт >> сис.стдерр, "Не могу да направим тмп. цацхедир. "
сис.излаз (1)
иб.репос.дисаблеРепо ('*')
иб.адд_енабле_репо ('мирепо', [урл])

Да покренете скрипту

питхон сцрипт.пи урл: // то / ми / репо

Резиме

У овом чланку смо научили како да управљате ИУМ менаџером пакета помоћу његовог питхон АПИ-ја. Размотрили смо опције конфигурације, као и АПИ-јеве за упит / претрагу доступних и инсталираних пакета и на крају начине за извршавање операција управљања пакетима, попут инсталирања / деинсталирања / поновне инсталације пакета.

Овај чланак је намењен да послужи као прозор у оно што је могуће путем иум питхон АПИ-ја. Иако АПИ није добро документован, он следи стандардне конвенције и ради предвидљиво. Наоружани знањем ИУМ-ових могућности и вештинама питона, забавно је истраживати и научити све што може. Надам се да сте до сада уживали у читању и да ћете наставити са истраживањем и применом иума у ​​својим пројектима.

5 најбољих аркадних игара за Линук
У данашње време рачунари су озбиљне машине које се користе за игре на срећу. Ако не успете да добијете нови високи резултат, знаћете на шта мислим. У ...
Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...
Како инсталирати Леагуе Оф Легендс на Убунту 14.04
Ако сте љубитељ Леагуе оф Легендс, ово је прилика да тестирате Леагуе оф Легендс. Имајте на уму да је ЛОЛ подржан на ПлаиОнЛинук ако сте корисник лину...