Interagire con Yum su CentOS usando Python

Interagire con Yum su CentOS usando Python

Yum è un'utilità per la gestione dei pacchetti software utilizzati da diversi sistemi operativi noti come Fedora e CentOS. Yum semplifica le installazioni del software su un'istanza CVM e rende semplice scaricare e installare i programmi che consentono di risparmiare tempo e sforzi. Yum può determinare, recuperare e installare automaticamente tutti i pacchetti a carico disponibili in quanto risolve automaticamente la dipendenza mentre si aggiorna, aggiunge o rimuove i pacchetti. Impareremo di più su Yum usando Python sul sistema CentOS in questo articolo.

Esempio 1: aggiorna il modulo Yum usando Python in CentOS

Come sappiamo, Yum è uno strumento di riga di comando che consente agli utenti di installare e scaricare automaticamente i pacchetti RPM aggiornati dopo aver verificato gli aggiornamenti.

#!/usr/bin/python
Import OS
cmd = "yum update"
sistema operativo.Sistema (CMD)

Qui, aggiorniamo Yum con il file Python per verificare se il modulo Yum viene aggiornato all'interno del sistema o richiede un aggiornamento. Lo script Python è dato dove Yum viene utilizzato per aggiornare. Importiamo il modulo "OS" per interagire con il sistema operativo CentOS. Quindi, usiamo "cmd" per interpretare l'affermazione che viene assegnata. Assegniamo un comando per aggiornare Yum.

Lo script viene salvato nel file “Script.py ”qui. Quando eseguiamo questo file Python, inizia ad aggiornare Yum. L'output stampa l'istruzione che afferma che "nessun pacchetto contrassegnato per l'aggiornamento" perché Yum è già aggiornato in CentOS.

[root@linux01 kalsoom]# python script.Py
Plug -in caricate: più velocemente, Langpacks
Caricamento delle velocità dello specchio dal file host memorizzata nella cache
* base: specchio.DC.uz
* extra: specchio.DC.uz
* Aggiornamenti: specchio.DC.uz
Nessun pacchetto contrassegnato per l'aggiornamento

Esempio 2: verificare la configurazione Yum usando Python in CentOS

L'approccio precedente è quello di aggiornare il pacchetto Yum usando lo script Python interagendo con CentOS. Ora, il pacchetto Python "Yum" deve essere importato per iniziare a utilizzare Yum nella programmazione che è preinstallato nel sistema operativo CentOS. Yum viene utilizzato per esaminare la configurazione Yum in questo caso.

#!/usr/bin/python
Import OS
Import sys
Importa yum
yb = yum.Yumbase ()
Stampa "**** File di configurazione yum ****"
Stampa yb.conf.config_file_path
Stampa "**** Logfile Path ****"
Stampa yb.conf.Logfile
Stampa "**** Repos directory e file ****"
per me in yb.conf.Reposdir: stampa i
Stampa "**** Parametro di Skip-Broken ****"
Stampa yb.conf.Skip_Broken
Stampa "**** Imposta il livello di errori ****"
Stampa yb.conf.Errorlevel

Il codice sorgente precedente viene importato con il modulo "Yum" insieme agli altri moduli richiesti. Successivamente, creiamo la variabile "yb" in cui viene distribuita la classe base di yumbase () del modulo "yum". Usiamo questa riga di codice in ciascuno dei nostri script di esempio perché la yumbase è la classe di root che contiene i metodi e gli oggetti necessari per eseguire tutte le operazioni di gestione dei pacchetti utilizzando Yum.

Le istruzioni di stampa vengono fornite per verificare la configurazione di Yum. Innanzitutto, abbiamo un'istruzione di stampa che visualizza il percorso del file di configurazione Yum. Quindi, impostiamo un comando di stampa di logfile usando la variabile "yb" per recuperare il percorso del file log di yum. Successivamente, utilizziamo il comando "Reposdir" per produrre le directory e i file del repository. Quindi, abbiamo un comando yum di un parametro ridotto che restituisce falso per impostazione predefinita quando non viene specificato alcun valore booleano. Quando il parametro Skip-Brokes viene dato a un comando di configurazione yumbase con un valore reale, consente a Yum di escludere automaticamente i pacchetti danneggiati dagli aggiornamenti senza l'input dell'utente. L'ultimo comando della configurazione Yum è "Errorlevel" per impostare il livello di errore. Ha un valore che varia da zero e 10, dove 0 è importante e 10 comprende il debug.

La configurazione Yum stampa il file di configurazione di Yum sul terminale. Otteniamo anche il percorso del file di log della configurazione Yum. Insieme a questo, vengono visualizzate le directory e i file del repository Yum. Quindi, otteniamo il falso valore dal comando skip-roken poiché non è impostato alcun valore contro questo. Il livello dei risultati dell'errore viene anche generato come "2".

[root@linux01 kalsoom]# python script.Py
**** File di configurazione yum ****
Plug -in caricate: più velocemente, Langpacks
/etc/yum.conf
**** Logfile Path ****
/var/log/yum.tronco d'albero
**** Repos directory e file ****
/etc/yum/repos.D
/etc/yum.repository.D
**** Parametro saltato di salto ****
Falso
**** Imposta il livello di errori ****
2

Esempio 3: cerca pacchetti dai repository di Yum usando Python in CentOS

Yum, in questo caso, viene utilizzato per individuare e stampare i repository di Yum per i pacchetti specificati. Usiamo alcuni metodi diversi della classe yumbase del seguente pacchetto Yum:

Import OS
Import sys
Importa yum
yb = yum.Yumbase ()
yb.setCachedir ()
Risultati = Yb.pkgsack.returnneWestByNamearch (patterns = ["Python", "Php"])
per PKG nei risultati:
Stampa "%s%s (%s) \ n \ t%s"%(pkg.nome, pkg.Versione, PKG.Arch, pkg.riepilogo)

Dopo aver distribuito il modulo Yum nel precedente script di Python, inseriamo il Yum.Riga yumbase () per iniziare il codice. Quindi, definiamo il comando setcachedir () di yumbase per stabilire una nuova directory di cache Yum per eseguire tutte le operazioni come utente normale e utente root. La riga successiva dello script è definita con la variabile "risultati" in cui utilizziamo la yumbase che viene invocata con il comando "pkgscak" per eseguire le query su tutti i repository accessibili. Successivamente, utilizziamo la funzione "ReturnNewstbynamearch" dell'attributo "pkhscak" di yum. Il metodo ReturnNewstByNamaarch () recupera gli oggetti del pacchetto che corrispondono alle stringhe di pattern "Python" o "PHP".

Le informazioni relative ai pacchetti "Python" e "PHP" sono stampate sul terminale CentOS dal modulo Yum.

[root@linux01 kalsoom]# python script.Py
Plug -in caricate: più velocemente, Langpacks
Caricamento delle velocità dello specchio dal file host memorizzata nella cache
* base: specchio.DC.uz
* extra: specchio.DC.uz
* Aggiornamenti: specchio.DC.uz
Python 2.7.5 (x86_64)
Un linguaggio di programmazione interpretato, interattivo, orientato agli oggetti
PHP 5.4.16 (x86_64)
Php Scripting Language per la creazione di siti Web dinamici

Esempio 4: installa il pacchetto con il metodo Yum usando Python in CentOS

L'installazione del pacchetto con Yum richiede l'impostazione e il completamento di una transazione. La classe yumbase del modulo Yum fornisce il metodo per installare i pacchetti in CentOS usando Python.

Import OS
Import sys
Importa yum
yb = yum.Yumbase ()
yb.Installa (name = 'php')
yb.risoludeps ()
yb.processTransaction ()

Distribuiamo la classe Yumbase () nella variabile "YB" dopo aver importato i moduli Yum nel precedente script Python. Quindi, utilizziamo l'YB.Installa il comando per installare semplicemente il pacchetto specificato. Lo yb.Il metodo di installazione () prende il "nome" come argomento a cui assegniamo il nome del pacchetto "PHP" per impostare la transazione. Successivamente, per iniziare la risoluzione delle dipendenze, il "YB.il metodo risoludeps () ӏ chiamato. Successivamente, il metodo ProcessTransaction () innesca l'installazione del pacchetto "PHP".

Possiamo vedere nell'output che il pacchetto PHP è installato correttamente nel sistema operativo CentOS interagendo con i metodi Yum.

[root@linux01 kalsoom]# python script.Py
Plug -in caricate: più velocemente, Langpacks
Caricamento delle velocità dello specchio dal file host memorizzata nella cache
* base: specchio.DC.uz
* extra: specchio.DC.uz
* Aggiornamenti: specchio.DC.uz
Pacchetto PHP-5.4.16-48.EL7.x86_64 già installato e ultima versione
Esecuzione del controllo delle transazioni

Esempio 5: impostare un repository in una determinata posizione con il metodo Yum usando Python in CentOS

Yum può essere configurato per recuperare un repository in qualsiasi posizione. Si aspetta di accettare un parametro della riga di comando che contiene l'URL del repository.

Import OS
Import sys
Importa yum
url = sys.argv [1]
yb = yum.Yumbase ()
se non yb.setCachedir (force = true, riutilizzo = falso): stampa >> sys.Stderr, "Abilita di creare un TMP. Cachedir. "
sys.uscita (1)
yb.repository.DisableRepo ('*')
yb.add_enable_repo ('newrepos', [url])

Qui, impieghiamo YB.repository.Metodo DisableRepo ('*') che disabilita tutti i repository mentre diamo al suo simbolo asterisco. Dopodiché, chiamiamo YB.metodo add_enable_repo () per abilitare il repository dato in cui è impostato l'URL.

Il precedente script Python, quando interagisce con Yum, imposta il repository dato nella posizione specifica su CentOS che genera i seguenti risultati:

[root@linux01 kalsoom]# python script.Py URL: // TO/NUOVO/REPOS
Plug -in caricate: più velocemente, Langpacks

Conclusione

Questa guida ha esplorato i modi per utilizzare l'API Python del pacchetto Yum. Eseguiamo semplicemente il comando UM dallo script Python per aggiornare l'operazione. Quindi, abbiamo utilizzato il pacchetto Yum per la configurazione di Yum in CentOS. Inoltre, il pacchetto specifico viene interrogato utilizzando il modulo Yum. Successivamente, abbiamo dimostrato il modo di installare il pacchetto con il metodo di installazione Yum. Allo stesso modo, possiamo anche disinstallare quel pacchetto usando YB.Rimuovi () metodo. Alla fine, impostiamo il repository nella posizione interagendo con il modulo Yum in Python.