Mit Python mit yum auf CentOS interagieren

Mit Python mit yum auf CentOS interagieren

Yum ist ein Dienstprogramm zur Behandlung von Softwarepaketen, die von mehreren bekannten Betriebssystemen wie Fedora und CentOS verwendet werden. Yum vereinfacht die Software -Installationen in einer CVM -Instanz und erleichtert es einfach, die Programme herunterzuladen und zu installieren. Yum kann alle verfügbaren Abhängigenpakete automatisch bestimmen, abrufen und installieren, da sie die Abhängigkeit beim Aktualisieren, Hinzufügen oder Entfernen der Pakete automatisch auflöst. Wir werden mehr über Yum über das CentOS -System in diesem Artikel erfahren.

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

Wie wir wissen, ist Yum ein Befehlszeilen-Tool, mit dem die Benutzer die aktualisierten RPM-Pakete automatisch installieren und herunterladen können, nachdem sie nach Updates geprüft werden können.

#!/usr/bin/python
OS importieren
cmd = "yum update"
Betriebssystem.System (CMD)

Hier aktualisieren wir YUM mit der Python -Datei, um zu überprüfen, ob das YUM -Modul im System aktualisiert wird oder ein Update erforderlich ist. Das Python -Skript wird angegeben, wo Yum zum Aktualisieren verwendet wird. Wir importieren das „Betriebssystem“ -Modul in die Interaktion mit dem CentOS -Betriebssystem. Dann verwenden wir "CMD", um die ihm zugewiesene Aussage zu interpretieren. Wir weisen einen Befehl zur Aktualisierung von Yum zu.

Das Skript wird in der Datei "Skript" gespeichert.py ”hier. Wenn wir diese Python -Datei ausführen, beginnt sie zu aktualisieren, Yum zu aktualisieren. Die Ausgabe druckt die Erklärung aus, in der festgestellt wird, dass „keine Pakete für das Update markiert sind“, da Yum bereits in CentOS aktualisiert ist.

[root@linux01 kalsoom]# Python -Skript.py
Ladete Plugins: schnellste Mirror, Langpacks
Ladespiegelgeschwindigkeiten von zwischengespeicherter Hostfile
* Basis: Spiegel.DC.Uz
* Extras: Spiegel.DC.Uz
* Updates: Spiegel.DC.Uz
Keine Pakete für das Update markiert

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

Der vorherige Ansatz besteht darin, das YUM -Paket mit dem Python -Skript zu aktualisieren, indem Sie mit CentOS interagieren. Jetzt muss das Python -Paket „Yum“ importiert werden, um mit der Verwendung von YUM in der Programmierung zu beginnen, das im CentOS -Betriebssystem vorinstalliert ist. Yum wird verwendet, um die YUM -Konfiguration in diesem Fall zu untersuchen.

#!/usr/bin/python
OS importieren
Importsystem
yum importieren
yb = yum.Yumbase ()
Drucken "**** yum config -Datei ****"
drucken yb.Conf.config_file_path
Drucken "**** logfile Pfad ****"
drucken yb.Conf.Logdatei
Drucken Sie "**** Repos -Verzeichnisse und -dateien ****"
denn ich in YB.Conf.Reposdir: drucken i
Drucken "**** übersprungener Parameter ****"
drucken yb.Conf.Skip_broken
Drucken "**** Legen Sie die Fehlerebene fest ****"
drucken yb.Conf.Fehlerlevel

Der vorherige Quellcode wird zusammen mit den anderen erforderlichen Modulen mit dem Modul „Yum“ importiert. Danach erstellen wir die "YB". Wir verwenden diese Codezeile in jeder unserer Beispielskripte.

Die Druckanweisungen werden angegeben, um die Konfiguration von yum zu überprüfen. Zunächst haben wir eine Druckanweisung, in der der Pfad der YUM -Konfigurationsdatei angezeigt wird. Anschließend setzen wir einen Druckbefehl von Logfile mit der Variablen „YB“, um den Logfile -Pfad von yum abzurufen. Danach verwenden wir den Befehl „Reposdir“, um die Verzeichnisse und Dateien des Repositorys auszugeben. Dann haben wir einen Yum. Wenn der Parameter über Skip-gebrochenes Parameter mit einem Yumbase-Konfigurationsbefehl mit einem tatsächlichen Wert vergeben wird, ermöglicht YUM, die beschädigten Pakete automatisch von Updates ohne die Benutzereingabe auszuschließen. Der letzte Befehl der YUM -Konfiguration ist „Fehlerlevel“, um die Fehlerebene festzulegen. Es hat einen Wert, der von Null und 10 liegt, wobei 0 nur wichtig ist und 10 Debugs umfasst.

Die YUM -Konfiguration druckt die Konfigurationsdatei von YUM auf dem Terminal. Wir erhalten auch den Logfile -Pfad der YUM -Konfiguration. Zusammen mit diesem werden die Verzeichnisse und Dateien des Yum -Repositorys angezeigt. Anschließend erhalten wir den falschen Wert aus dem Befehl Skip-gebrochenes, da kein Wert dagegen festgelegt wird. Die Ebenen der Fehlerergebnisse werden ebenfalls als „2“ generiert.

[root@linux01 kalsoom]# Python -Skript.py
**** yum config -Datei ****
Ladete Plugins: schnellste Mirror, Langpacks
/etc/yum.Conf
**** logfile Pfad ****
/var/log/yum.Protokoll
**** Repos -Verzeichnisse und -dateien ****
/etc/yum/repos.D
/etc/yum.Repos.D
**** Parameter überspringen ****
FALSCH
**** Legen Sie die Fehlerebene fest ****
2

Beispiel 3: Suchen Sie nach Paketen aus den Yum -Repositories mit Python in CentOS

Yum wird in diesem Fall verwendet, um die Yum -Repositories für die angegebenen Pakete zu lokalisieren und zu drucken. Wir verwenden verschiedene Methoden der Yumbase -Klasse des folgenden YUM -Pakets:

OS importieren
Importsystem
yum importieren
yb = yum.Yumbase ()
yb.setCachedir ()
Ergebnisse = yb.pkgsack.returnNewestbynamearch (musters = ["Python", "Php"])
Für PKG in Ergebnissen:
Druck "%s%s (%s) \ n \ t%s"%(PKG.Name, Pkg.Version, PKG.Arch, Pkg.Zusammenfassung)

Nachdem wir das YUM -Modul im vorherigen Python -Skript bereitgestellt haben, fügen wir das yum ein.Yumbase () Zeile, um den Code zu beginnen. Anschließend definieren wir den Befehl setCacheDir () von Yumbase, um ein neues Yum -Cache -Verzeichnis festzulegen, um alle Vorgänge als reguläre Benutzer sowie als Root -Benutzer auszuführen. Die nächste Zeile des Skripts ist mit der Variablen „Ergebnisse“ definiert, in der wir die Yumbase verwenden, die mit dem Befehl „PKGSCAK“ aufgerufen wird, um die Abfragen auf allen zugänglichen Repositories auszuführen. Danach verwenden wir die Funktion "returnNewstbynaMearch" des "pkhscak" -attributs von yum. Die Methode returnNewstbynaMearch () ruft die Paketobjekte ab, die den Musterzeichenfolgen „Python“ oder „PHP“ entsprechen.

Die Informationen, die mit „Python “- und„ PHP “-Paketen zusammenhängen.

[root@linux01 kalsoom]# Python -Skript.py
Ladete Plugins: schnellste Mirror, Langpacks
Ladespiegelgeschwindigkeiten von zwischengespeicherter Hostfile
* Basis: Spiegel.DC.Uz
* Extras: Spiegel.DC.Uz
* Updates: Spiegel.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 mit Python in CentOS

Für die Installation des Pakets mit YUM muss eine Transaktion eingerichtet und abgeschlossen werden. Die Yumbase -Klasse des YUM -Moduls bietet die Methode zur Installation der Pakete in CentOS mit Python.

OS importieren
Importsystem
yum importieren
yb = yum.Yumbase ()
yb.install (name = 'php')
yb.Auflösung ()
yb.processTransaction ()

Wir stellen die yumbase () -Klasse in der Variablen „YB“ bereit, nachdem wir die YUM -Module im vorherigen Python -Skript importiert haben. Dann verwenden wir die YB.Installieren Sie den Befehl, um einfach das angegebene Paket zu installieren. Der yb.Install () Methode nimmt den Namen „Name“ als Argument, dem wir den Paketnamen „PHP“ zuweisen, um die Transaktion festzulegen. Danach, um die Lösung von Abhängigkeiten zu initiieren, die „YB.Auflösungen () ”werden aufgerufen. Als nächstes löst die ProcessTransaction () -Methode die Installation des PHP -Pakets aus.

Wir können in der Ausgabe sehen, dass das PHP -Paket erfolgreich im CentOS -Betriebssystem installiert wird.

[root@linux01 kalsoom]# Python -Skript.py
Ladete Plugins: schnellste Mirror, Langpacks
Ladespiegelgeschwindigkeiten von zwischengespeicherter Hostfile
* Basis: Spiegel.DC.Uz
* Extras: Spiegel.DC.Uz
* Updates: Spiegel.DC.Uz
Paket PHP-5.4.16-48.EL7.x86_64 bereits installiert und neueste Version
Auslauf -Transaktionsprüfung

Beispiel 5: Stellen Sie ein Repository an einem bestimmten Ort mit der YUM -Methode mit Python in CentOS fest

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

OS importieren
Importsystem
yum importieren
URL = sys.Argv [1]
yb = yum.Yumbase ()
Wenn nicht YB.setCachedir (Force = true, reseuse = false): drucken >> sys.Stderr, "ermöglichen das Erstellen eines TMP. Cachedir. "
sys.Ausgang (1)
yb.Repos.disablerepo ('*')
yb.add_enable_repo ('newrepos', [url])

Hier beschäftigen wir die YB.Repos.DisableRepo ('*') -Methode, die alle Repositorys deaktiviert, wenn wir das Sternchensymbol darin geben. Danach rufen wir die YB an.add_enable_repo () -Methode, um das angegebene Repository zu aktivieren, in dem die URL festgelegt ist.

Das vorherige Python -Skript legt beim Interagieren mit Yum das angegebene Repository an dem spezifischen Ort auf CentOS fest, wodurch die folgenden Ergebnisse generiert werden:

[root@linux01 kalsoom]# Python -Skript.PY URL: // an/new/repos
Ladete Plugins: schnellste Mirror, Langpacks

Abschluss

Dieser Leitfaden untersuchte Möglichkeiten, die Python -API des YUM -Pakets zu verwenden. Wir führen einfach den Befehl UM aus dem Python -Skript aus, um den Vorgang zu aktualisieren. Dann haben wir das YUM -Paket für die Konfiguration von YUM in CentOS verwendet. Darüber hinaus wird das spezifische Paket mit dem YUM -Modul abgefragt. Danach zeigten wir die Art und Weise, das Paket mit der YUM -Installationsmethode zu installieren. Auf die gleiche Weise können wir dieses Paket auch mit dem YB deinstallieren.REME () Methode. Am Ende setzen wir das Repository am Ort, indem wir mit dem Yum -Modul in Python interagieren.