Samspill med yum på centos ved bruk av python

Samspill med yum på centos ved bruk av python

Yum er et verktøy for håndtering av programvarepakker som brukes av flere kjente operativsystemer som Fedora og Centos. Yum forenkler programvareinstallasjonene på en CVM -forekomst og gjør det enkelt å laste ned og installere programmene som sparer tid og krefter. Yum kan bestemme, hente og installere alle tilgjengelige avhengige pakker automatisk, da det automatisk løser avhengigheten mens du oppdaterer, legger til eller fjerner pakkene. Vi lærer mer om Yum ved å bruke Python på CentOS -systemet i denne artikkelen.

Eksempel 1: Oppdater Yum -modulen ved å bruke Python i Centos

Som vi vet, er Yum et kommandolinjeverktøy som gjør at brukerne automatisk kan installere og laste ned de oppdaterte RPM-pakkene etter å ha sjekket for oppdateringer.

#!/usr/bin/python
Importer OS
CMD = "Yum Update"
OS.System (CMD)

Her oppdaterer vi Yum med Python -filen for å sjekke om Yum -modulen er oppdatert i systemet, eller den krever en oppdatering. Python -skriptet er gitt der Yum brukes til å oppdatere. Vi importerer “OS” -modulen for å samhandle med CentOS -operativsystemet. Deretter bruker vi “CMD” for å tolke uttalelsen som er tilordnet den. Vi tildeler en kommando for å oppdatere yum.

Skriptet er lagret i filen “Skript.py ”her. Når vi utfører denne Python -filen, begynner den å oppdatere Yum. Utgangen skriver ut uttalelsen som sier at "ingen pakker merket for oppdatering" fordi Yum allerede er oppdatert i CentOS.

[root@linux01 kalsoom]# python manus.py
Loaded plugins: Fastestmirror, Langpacks
Laster inn speilhastigheter fra hurtigbufret vertsfil
* base: speil.DC.uz
* Ekstra: speil.DC.uz
* Oppdateringer: Mirror.DC.uz
Ingen pakker merket for oppdatering

Eksempel 2: Sjekk for Yum -konfigurasjonen ved hjelp av Python i Centos

Den forrige tilnærmingen er å oppdatere Yum -pakken ved å bruke Python -skriptet ved å samhandle med Centos. Nå må "Yum" Python -pakken importeres for å begynne å bruke Yum i programmering som er forhåndsinstallert i CentOS -operativsystemet. Yum brukes til å undersøke Yum -konfigurasjonen i dette tilfellet.

#!/usr/bin/python
Importer OS
Importer Sys
Importer yum
yb = yum.Yumbase ()
Skriv ut "**** yum config -fil ****"
Skriv ut YB.konf.config_file_path
Skriv ut "**** Logfile Path ****"
Skriv ut YB.konf.loggfil
Skriv ut "**** repos kataloger og filer ****"
for jeg i YB.konf.reposdir: trykk i
Skriv ut "**** hoppbrutt parameter ****"
Skriv ut YB.konf.Skip_broken
Skriv ut "**** Angi feilnivået ****"
Skriv ut YB.konf.feilnivå

Den forrige kildekoden importeres med “Yum” -modulen sammen med de andre nødvendige modulene. Etter det oppretter vi “YB” -variabelen der Yumbase () baseklasse for “Yum” -modulen er distribuert. Vi bruker denne kodelinjen i hvert av våre eksempelskript fordi Yumbase er rotklassen som inneholder metodene og objektene som er nødvendige for å utføre alle pakkestyringsoperasjoner ved hjelp av Yum.

Utskriftsuttalelsene er gitt for å sjekke konfigurasjonen av YUM. Først har vi en utskriftserklæring som viser banen til YUM -konfigurasjonsfilen. Deretter setter vi en utskriftskommando over loggfilen ved å bruke "YB" -variabelen for å hente logfilbanen til Yum. Etter det bruker vi “reposdir” -kommandoen for å sende ut depotets kataloger og filer. Deretter har vi en YUM-kommando over en hoppebrutt parameter som returnerer falsk som standard når ingen boolsk verdi er spesifisert til den. Når hoppbrettet parameter blir gitt til en Yumbase-konfigurasjonskommando med en ekte verdi, gjør det at Yum automatisk utelukker de skadede pakkene fra oppdateringer uten brukerinngangen. Den siste kommandoen til Yum -konfigurasjonen er "feilnivå" for å angi feilnivået. Den har en verdi som spenner fra null og 10, der 0 bare er viktig og 10 omfatter debug.

Yum -konfigurasjonen skriver ut konfigurasjonsfilen til Yum på terminalen. Vi får også logfilbanen til Yum -konfigurasjonen. Sammen med dette vises katalogene og filene til Yum Repository. Deretter oppnår vi den falske verdien fra hoppbrokket kommando siden det ikke er satt noen verdi mot dette. Nivået på feilresultater genereres også som "2".

[root@linux01 kalsoom]# python manus.py
**** yum config -fil ****
Loaded plugins: Fastestmirror, Langpacks
/etc/yum.konf
**** Logfile Path ****
/var/log/yum.Logg
**** repos kataloger og filer ****
/etc/yum/repos.d
/etc/yum.repos.d
**** Skip-Brutt Parameter ****
Falsk
**** Angi feilnivået ****
2

Eksempel 3: Søk etter pakker fra Yum -lagringene ved hjelp av Python i Centos

Yum, i dette tilfellet, brukes til å lokalisere og skrive ut Yum -lagringene for de spesifiserte pakkene. Vi bruker noen forskjellige metoder for Yumbase -klassen i følgende Yum -pakken:

Importer OS
Importer Sys
Importer yum
yb = yum.Yumbase ()
yb.setcachedir ()
resultater = yb.PkgSack.ReturnNewestByNamearch (Patterns = ["Python", "PHP"])
For PKG i resultater:
Skriv ut "%s%s (%s) \ n \ t%s"%(PKG.Navn, Pkg.versjon, Pkg.Arch, Pkg.sammendrag)

Etter å ha distribuert Yum -modulen i det forrige Python -skriptet, setter vi inn Yum.Yumbase () linje for å begynne koden. Deretter definerer vi SetCachedir () -kommandoen til Yumbase for å etablere en ny Yum Cache -katalog for å utføre alle operasjoner som en vanlig bruker så vel som rotbrukeren. Den neste linjen i skriptet er definert med "Resultat" -variabelen der vi bruker Yumbase som påberopes med “PKGSCAK” -kommandoen for å kjøre spørsmålene på alle tilgjengelige depoter. Etter det bruker vi "Returnnewstbyamearch" -funksjonen til "PKHSCAK" -attributtet til Yum. ReturnNewStbyNamearch () -metoden henter pakkeobjektene som samsvarer med “Python” eller “PHP” mønsterstrengene.

Informasjonen som er relatert til “Python” og “PHP” -pakker, skrives ut på CentOS -terminalen av YUM -modulen.

[root@linux01 kalsoom]# python manus.py
Loaded plugins: Fastestmirror, Langpacks
Laster inn speilhastigheter fra hurtigbufret vertsfil
* base: speil.DC.uz
* Ekstra: speil.DC.uz
* Oppdateringer: Mirror.DC.uz
Python 2.7.5 (x86_64)
Et tolket, interaktivt, objektorientert programmeringsspråk
PHP 5.4.16 (x86_64)
PHP -skriptspråk for å lage dynamiske nettsteder

Eksempel 4: Installer pakken med Yum -metoden ved hjelp av Python i Centos

Installasjonen av pakken med Yum krever å sette opp og fullføre en transaksjon. Yumbase -klassen til Yum -modulen gir metoden for å installere pakkene i CentOS ved hjelp av Python.

Importer OS
Importer Sys
Importer yum
yb = yum.Yumbase ()
yb.installer (name = 'php')
yb.Resolvedeps ()
yb.ProcessTransaction ()

Vi distribuerer Yumbase () -klassen i "YB" -variabelen etter å ha importert Yum -modulene i det forrige Python -skriptet. Deretter bruker vi YB.Installer kommandoen for bare å installere den spesifiserte pakken. YB.Installer () -metoden tar "navnet" som et argument som vi tildeler "PHP" -pakkenavnet for å angi transaksjonen. Etter det, for å sette i gang oppløsningen av avhengigheter, "YB.ResolvedEps () ”-metoden kalles. Deretter utløser metoden ProcessTransaction ().

Vi kan se i utgangen at PHP -pakken er vellykket installert i CentOS -operativsystemet ved å samhandle med Yum -metodene.

[root@linux01 kalsoom]# python manus.py
Loaded plugins: Fastestmirror, Langpacks
Laster inn speilhastigheter fra hurtigbufret vertsfil
* base: speil.DC.uz
* Ekstra: speil.DC.uz
* Oppdateringer: Mirror.DC.uz
Pakke PHP-5.4.16-48.El7.x86_64 allerede installert og siste versjon
Kjør transaksjonssjekk

Eksempel 5: Sett et depot på et gitt sted med Yum -metoden ved hjelp av Python i Centos

Yum kan konfigureres til å hente et depot på alle steder. Den forventer å godta en kommandolinjeparameter som inneholder depotets URL.

Importer OS
Importer Sys
Importer yum
URL = SYS.Argv [1]
yb = yum.Yumbase ()
Hvis ikke YB.setcachedir (kraft = true, gjenbruk = falsk): utskrift >> sys.stderr, "Aktiver å lage en TMP. Cachedir. ""
sys.Avslutt (1)
yb.repos.deableRepo ('*')
yb.add_enable_repo ('newRepos', [url])

Her bruker vi YB.repos.DisableRePo ('*') -metode som deaktiverer alle depotene når vi gir stjerne -symbolet inni den. Etter det kaller vi YB.add_enable_repo () metode for å aktivere det gitte depotet der nettadressen er angitt.

Det forrige Python -skriptet, når du samhandler med Yum, setter det gitte depotet på det spesifikke stedet på CentOS som genererer følgende resultater:

[root@linux01 kalsoom]# python manus.py url: // til/new/repos
Loaded plugins: Fastestmirror, Langpacks

Konklusjon

Denne guiden utforsket måter å bruke Python API av Yum -pakken. Vi kjører ganske enkelt UM -kommandoen fra Python -skriptet for å oppdatere operasjonen. Deretter benyttet vi Yum -pakken for konfigurasjonen av Yum i Centos. Videre spørres den spesifikke pakken ved hjelp av Yum -modulen. Etter det demonstrerte vi måten å installere pakken med YUM -metoden for installasjon. På samme måte kan vi også avinstallere den pakken ved hjelp av YB.Fjern () Metode. Til slutt satte vi depotet på stedet ved å samhandle med Yum -modulen i Python.