Interaktion mit YUM auf CentOS unter Verwendung von Python

YUM ist ein Dienstprogramm zur Handhabung von Softwarepaketen, die von mehreren bekannten Betriebssystemen wie Fedora und CentOS verwendet werden. YUM vereinfacht die Softwareinstallation auf einer CVM-Instanz und erleichtert das Herunterladen und Installieren der Programme, was Zeit und Aufwand spart. YUM kann alle verfügbaren abhängigen Pakete automatisch ermitteln, abrufen und installieren, da es die Abhängigkeit beim Aktualisieren, Hinzufügen oder Entfernen der Pakete automatisch auflöst. In diesem Artikel erfahren Sie mehr über YUM mit Python auf dem CentOS-System.

Beispiel 1: Aktualisieren Sie das YUM-Modul mit Python in CentOS

Wie wir wissen, ist YUM ein Befehlszeilentool, das es den Benutzern ermöglicht, die aktualisierten RPM-Pakete automatisch zu installieren und herunterzuladen, nachdem sie nach Updates gesucht haben.

#!/usr/bin/python

Betriebssystem importieren
cmd = „leckeres Update“
os.system(cmd)

Hier aktualisieren wir YUM mit der Python-Datei, um zu prüfen, ob das YUM-Modul innerhalb des Systems aktualisiert wird oder ein Update erfordert. Das Python-Skript wird dort angegeben, wo YUM zum Aktualisieren verwendet wird. Wir importieren das „os“-Modul, um mit dem CentOS-Betriebssystem zu interagieren. Dann verwenden wir „cmd“, um die ihm zugewiesene Anweisung zu interpretieren. Wir weisen einen Befehl zum Aktualisieren von YUM zu.

Das Skript wird hier in der Datei „script.py“ gespeichert. Wenn wir diese Python-Datei ausführen, beginnt sie, YUM zu aktualisieren. Die Ausgabe gibt die Anweisung aus, dass „keine Pakete zur Aktualisierung markiert“ sind, da YUM bereits in CentOS aktualisiert wurde.

[root@Linux01 kalsoom]# Python-Skript.py
Geladene Plugins: schnellster Spiegel, Langpacks
Laden der Spiegelgeschwindigkeiten aus der zwischengespeicherten Hostdatei
* Basis: Mirror.dc.uz
* Extras: Mirror.dc.uz
* Aktualisierungen: Mirror.dc.uz
Keine Pakete zur Aktualisierung markiert

Beispiel 2: Überprüfen Sie die YUM-Konfiguration mit Python in CentOS

Der bisherige Ansatz besteht darin, das YUM-Paket mithilfe des Python-Skripts durch Interaktion mit CentOS zu aktualisieren. Jetzt muss das Python-Paket „yum“ importiert werden, um YUM in der Programmierung verwenden zu können, das im CentOS-Betriebssystem vorinstalliert ist. YUM wird in diesem Fall zur Untersuchung der YUM-Konfiguration verwendet.

#!/usr/bin/python

Betriebssystem importieren
Importsystem
Import lecker

yb = yum.YumBase()

print „****leckere Konfigurationsdatei****“
Drucken Sie yb.conf.config_file_path

print „****Protokolldateipfad****“
yb.conf.logfile drucken

print „****repos Verzeichnisse und Dateien****“
für i in yb.conf.reposdir: i drucken

print „****skip-broken parameter****“
yb.conf.skip_broken drucken

print „****Legen Sie die Fehlerstufe fest****“
yb.conf.errorlevel drucken

Der bisherige Quellcode wird mit dem „yum“-Modul zusammen mit den anderen benötigten Modulen importiert. Danach erstellen wir die Variable „yb“, in der die Basisklasse yumBase() des Moduls „yum“ bereitgestellt wird. Wir verwenden diese Codezeile in jedem unserer Beispielskripte, da YumBase die Stammklasse ist, die die Methoden und Objekte enthält, die zum Ausführen aller Paketverwaltungsvorgänge mit YUM erforderlich sind.

Die Druckanweisungen dienen dazu, die Konfiguration von YUM zu überprüfen. Zuerst haben wir eine print-Anweisung, die den Pfad der YUM-Konfigurationsdatei anzeigt. Dann legen wir einen Druckbefehl von logFile fest, indem wir die Variable „yb“ verwenden, um den Protokolldateipfad von YUM abzurufen. Anschließend verwenden wir den Befehl „reposdir“, um die Verzeichnisse und Dateien des Repositorys auszugeben. Dann haben wir einen YUM-Befehl eines Skip-Broken-Parameters, der standardmäßig false zurückgibt, wenn kein boolescher Wert angegeben ist. Wenn der Parameter „skip-broken“ einem yumBase-Konfigurationsbefehl mit einem wahren Wert übergeben wird, ermöglicht er YUM, die beschädigten Pakete ohne Benutzereingabe automatisch von Updates auszuschließen. Der letzte Befehl der YUM-Konfiguration ist „errorlevel“, um die Fehlerstufe festzulegen. Der Wert liegt zwischen 0 und 10, wobei 0 nur wichtig ist und 10 das Debuggen umfasst.

Die YUM-Konfiguration druckt die Konfigurationsdatei von YUM auf dem Terminal. Wir erhalten auch den logFile-Pfad der YUM-Konfiguration. Gleichzeitig werden die Verzeichnisse und Dateien des YUM-Repositorys angezeigt. Dann erhalten wir den falschen Wert aus dem Befehl „skip-broken“, da hierfür kein Wert festgelegt ist. Die Fehlerstufe der Ergebnisse wird ebenfalls als „2“ generiert.

[root@Linux01 kalsoom]# Python-Skript.py
****leckere Konfigurationsdatei****
Geladene Plugins: schnellster Spiegel, Langpacks
/etc/yum.conf
****Protokolldateipfad****
/var/log/yum.log
****Repos-Verzeichnisse und Dateien****
/etc/yum/repos.d
/etc/yum.repos.d
****Fehlerhafte Parameter überspringen****
FALSCH
****Fehlerstufe festlegen****
2

Beispiel 3: Suche nach Paketen aus den YUM-Repositorys mit Python in CentOS

YUM wird in diesem Fall verwendet, um die YUM-Repositorys für die angegebenen Pakete zu finden und zu drucken. Wir verwenden einige verschiedene Methoden der yumBase-Klasse des folgenden YUM-Pakets:

Betriebssystem importieren
Importsystem
Import lecker

yb = yum.YumBase()
yb.setCacheDir()

results = yb.pkgSack.returnNewestByNameArch(patterns=[„python“, „php“])

für pkg in den Ergebnissen:
print „%s %s (%s) \n\t%s“ % (pkg.name, pkg.version, pkg.arch, pkg.summary)

Nachdem wir das YUM-Modul im vorherigen Python-Skript bereitgestellt haben, fügen wir die Zeile yum.YumBase() ein, um den Code zu beginnen. Anschließend definieren wir den Befehl setCacheDir() von yumBase, um ein neues Yum-Cache-Verzeichnis einzurichten, um alle Vorgänge sowohl als regulärer Benutzer als auch als Root-Benutzer auszuführen. Die nächste Zeile des Skripts wird mit der Variablen „results“ definiert, wobei wir yumBase verwenden, das mit dem Befehl „pkgScak“ aufgerufen wird, um die Abfragen für alle zugänglichen Repositorys auszuführen. Danach verwenden wir die Funktion „returnNewstByNameArch“ des Attributs „pkhScak“ von YUM. Die Methode returnNewstByNameArch() ruft die Paketobjekte ab, die den Musterzeichenfolgen „Python“ oder „PHP“ entsprechen.

Die Informationen, die sich auf „Python“- und „PHP“-Pakete beziehen, werden vom YUM-Modul auf dem CentOS-Terminal gedruckt.

[root@Linux01 kalsoom]# Python-Skript.py
Geladene Plugins: schnellster Spiegel, Langpacks
Laden der Spiegelgeschwindigkeiten aus der zwischengespeicherten Hostdatei
* Basis: Mirror.dc.uz
* Extras: Mirror.dc.uz
* Aktualisierungen: Mirror.dc.uz
Python 2.7.5 (x86_64)
Eine interpretierte, interaktive, objektorientierte Programmiersprache
PHP 5.4.16 (x86_64)
PHP-Skriptsprache zum Erstellen dynamischer Websites

Beispiel 4: Installieren Sie das Paket mit der YUM-Methode unter Verwendung von Python in CentOS

Die Installation des Pakets mit YUM erfordert die Einrichtung und den Abschluss einer Transaktion. Die YumBase-Klasse des YUM-Moduls bietet die Methode zum Installieren der Pakete in CentOS mit Python.

Betriebssystem importieren
Importsystem
Import lecker

yb = yum.YumBase()
yb.install(name=’php‘)

yb.resolveDeps()
yb.processTransaction()

Wir stellen die Klasse yumBase() in der Variablen „yb“ bereit, nachdem wir die YUM-Module im vorherigen Python-Skript importiert haben. Anschließend verwenden wir den Befehl yb.install, um einfach das angegebene Paket zu installieren. Die Methode yb.install() nimmt den „Namen“ als Argument, dem wir den Paketnamen „php“ zuweisen, um die Transaktion festzulegen. Anschließend wird die Methode „yb.resolveDeps()“ aufgerufen, um die Auflösung der Abhängigkeiten anzustoßen. Als nächstes löst die Methode „processTransaction()“ die Installation des „php“-Pakets aus.

In der Ausgabe können wir sehen, dass das PHP-Paket durch Interaktion mit den YUM-Methoden erfolgreich im CentOS-Betriebssystem installiert wurde.

[root@Linux01 kalsoom]# Python-Skript.py
Geladene Plugins: schnellster Spiegel, Langpacks
Laden der Spiegelgeschwindigkeiten aus der zwischengespeicherten Hostdatei
* Basis: Mirror.dc.uz
* Extras: Mirror.dc.uz
* Aktualisierungen: Mirror.dc.uz
Paket php-5.4.16-48.el7.x86_64 bereits installiert und neueste Version
Transaktionsprüfung durchführen

Beispiel 5: Legen Sie ein Repository an einem bestimmten Ort mit der YUM-Methode unter Verwendung von Python in CentOS fest

YUM kann so konfiguriert werden, dass ein Repository an einem beliebigen Ort abgerufen wird. Es erwartet, einen Befehlszeilenparameter zu akzeptieren, der die URL des Repositorys enthält.

Betriebssystem importieren
Importsystem
Import lecker

URL = sys.argv[1]

yb = yum.YumBase()
Wenn nicht, yb.setCacheDir(force=True, reuse=False): print >>sys.stderr, „ermöglicht die Erstellung eines tmp. Cachedir.“
sys.exit(1)

yb.repos.disableRepo(‚*‘)

yb.add_enable_repo(‚NewRepos‘, [url])

Hier verwenden wir die Methode yb.repos.disableRepo(‚*‘), die alle Repositorys deaktiviert, da wir darin das Sternchensymbol angeben. Danach rufen wir die Methode yb.add_enable_repo() auf, um das angegebene Repository zu aktivieren, in dem die URL festgelegt ist.

Das vorherige Python-Skript legt bei der Interaktion mit YUM das angegebene Repository an der spezifischen Stelle auf CentOS fest, was die folgenden Ergebnisse generiert:

[root@Linux01 kalsoom]# python script.py url://to/New/Repos
Geladene Plugins: schnellster Spiegel, Langpacks

Abschluss

In diesem Leitfaden wurden Möglichkeiten zur Verwendung der Python-API des YUM-Pakets untersucht. Wir führen einfach den Befehl um aus dem Python-Skript aus, um den Vorgang zu aktualisieren. Anschließend haben wir das YUM-Paket für die Konfiguration von YUM in CentOS verwendet. Darüber hinaus wird das spezifische Paket mithilfe des YUM-Moduls abgefragt. Anschließend demonstrierten wir die Installation des Pakets mit der YUM-Installationsmethode. Auf die gleiche Weise können wir dieses Paket auch mit der Methode yb.remove() deinstallieren. Am Ende legen wir das Repository am Standort fest, indem wir mit dem YUM-Modul in Python interagieren.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen