Interagir avec Yum sur CentOS en utilisant Python

Interagir avec Yum sur CentOS en utilisant Python

Yum est un utilitaire pour gérer les packages de logiciels utilisés par plusieurs systèmes d'exploitation bien connus tels que Fedora et CentOS. Yum simplifie les installations logicielles sur une instance CVM et le rend simple à télécharger et à installer les programmes qui gagnent du temps et des efforts. Yum peut déterminer, récupérer et installer tous les packages à charge disponible automatiquement car il résout automatiquement la dépendance lors de la mise à jour, de l'ajout ou de la suppression des packages. Nous en apprendrons plus sur Yum en utilisant Python sur le système CentOS dans cet article.

Exemple 1: Mettez à jour le module YUM à l'aide de Python dans CentOS

Comme nous le savons, Yum est un outil de ligne de commande qui permet aux utilisateurs d'installer et de télécharger automatiquement les packages RPM mis à jour après avoir vérifié les mises à jour.

#!/ usr / bin / python
Importer un système d'exploitation
cmd = "mim mise à jour"
OS.Système (CMD)

Ici, nous mettons à jour YUM avec le fichier Python pour vérifier si le module YUM est mis à jour dans le système ou qu'il faut une mise à jour. Le script Python est donné où Yum est utilisé pour mettre à jour. Nous importons le module «OS» pour interagir avec le système d'exploitation CENTOS. Ensuite, nous utilisons «CMD» pour interpréter la déclaration qui lui est affectée. Nous attribuons une commande pour mettre à jour Yum.

Le script est enregistré dans le fichier «Script.py "ici. Lorsque nous exécutons ce fichier Python, il commence à mettre à jour Yum. La sortie imprime l'instruction qui indique que «aucun package marqué pour la mise à jour» car Yum est déjà mis à jour dans CentOS.

[root @ linux01 kalsoom] # script python.py
Plugins chargés: FastSetMirror, Langpacks
Chargement des vitesses de miroir à partir du fichier hôte mis en cache
* base: miroir.dc.uz
* Extras: miroir.dc.uz
* Mises à jour: miroir.dc.uz
Aucun package marqué pour la mise à jour

Exemple 2: Vérifiez la configuration de YUM à l'aide de Python dans CentOS

L'approche précédente consiste à mettre à jour le package YUM en utilisant le script Python en interagissant avec Centos. Maintenant, le package Python «Yum» doit être importé pour commencer à utiliser Yum dans la programmation qui est préinstallée dans le système d'exploitation CENTOS. Yum est utilisé pour examiner la configuration de Yum dans ce cas.

#!/ usr / bin / python
Importer un système d'exploitation
importer sys
importer miam
yb = yum.Yumbase ()
Imprimer "**** Yum Config Fichier ****"
Imprimer YB.confli.config_file_path
Imprimer "**** Logfile Path ****"
Imprimer YB.confli.fichier journal
Imprimez "**** Reposons répertoires et fichiers ****"
Pour je à YB.confli.Reposdir: imprimer I
Imprimer "**** Paramètre brisé à saut ****"
Imprimer YB.confli.skip_broken
Imprimer "**** Définissez le niveau d'erreurs ****"
Imprimer YB.confli.errorlevel

Le code source précédent est importé avec le module «yum» avec les autres modules requis. Après cela, nous créons la variable «yb» où la classe de base yumbase () du module «miam» est déployée. Nous utilisons cette ligne de code dans chacun de nos exemples de scripts car Yumbase est la classe racine qui contient les méthodes et objets nécessaires pour effectuer toutes les opérations de gestion des paquets à l'aide de miam.

Les instructions d'impression sont données pour vérifier la configuration de miam. Tout d'abord, nous avons une instruction d'impression qui affiche le chemin d'accès du fichier de configuration YUM. Ensuite, nous définissons une commande imprimée de LogFile en utilisant la variable «YB» pour récupérer le chemin de journal de Yum. Après cela, nous utilisons la commande «Reposdir» pour sortir les répertoires et fichiers du référentiel. Ensuite, nous avons une commande YUM d'un paramètre brisé à sauter qui retourne faux par défaut lorsqu'aucune valeur booléenne ne lui est spécifiée. Lorsque le paramètre Broken Skip est donné à une commande de configuration Yumbase avec une vraie valeur, il permet à Yum d'exclure automatiquement les packages endommagés des mises à jour sans l'entrée de l'utilisateur. La dernière commande de la configuration de YUM est «Errorlevel» pour définir le niveau d'erreur. Il a une valeur qui va de zéro et 10, où 0 est uniquement important et 10 comprend le débogage.

La configuration YUM imprime le fichier de configuration de Yum sur le terminal. Nous obtenons également le chemin de journal de la configuration de YUM. Parallèlement à cela, les répertoires et les fichiers du référentiel yum sont affichés. Ensuite, nous obtenons la fausse valeur à partir de la commande Skip-Broken car aucune valeur n'est définie contre cela. Le niveau de résultats d'erreur est également généré comme «2».

[root @ linux01 kalsoom] # script python.py
**** Fichier de configuration de YUM ****
Plugins chargés: FastSetMirror, Langpacks
/ etc / yum.confli
**** PATAINE DE LOGE ****
/ var / log / yum.enregistrer
**** Répertories et fichiers ****
/ etc / yum / repos.d
/ etc / yum.se soustraire.d
**** Paramètre Broken Skip ****
FAUX
**** Définissez le niveau des erreurs ****
2

Exemple 3: Recherchez des packages à partir des référentiels YUM à l'aide de Python dans CentOS

Yum, dans ce cas, est utilisé pour localiser et imprimer les référentiels YUM pour les packages spécifiés. Nous utilisons différentes méthodes de la classe Yumbase du package YUM suivant:

Importer un système d'exploitation
importer sys
importer miam
yb = yum.Yumbase ()
YB.setCachedir ()
Résultats = YB.pkgsack.returnNewestByNamearch (motifs = ["python", "php"])
pour PKG dans les résultats:
Imprimer "% s% s (% s) \ n \ t% s"% (pkg.Nom, PKG.Version, PKG.Arch, pkg.résumé)

Après avoir déployé le module YUM dans le script Python précédent, nous insérons le yum.Ligne yumbase () pour commencer le code. Ensuite, nous définissons la commande setCachedir () de Yumbase pour établir un nouveau répertoire de cache YUM pour effectuer toutes les opérations en tant qu'utilisateur régulier ainsi que l'utilisateur racine. La ligne suivante du script est définie avec la variable «Résultats» où nous utilisons la Yumbase qui est invoquée avec la commande «PKGSCAK» pour exécuter les requêtes sur tous les référentiels accessibles. Après cela, nous utilisons la fonction «returnNewstByNamearch» de l'attribut «pkhscak» de miam. La méthode returnNewstByNamearch () récupère les objets de package qui correspondent aux chaînes de motifs «python» ou «php».

Les informations liées aux packages «Python» et «PHP» sont imprimés sur le terminal CENTOS par le module YUM.

[root @ linux01 kalsoom] # script python.py
Plugins chargés: FastSetMirror, Langpacks
Chargement des vitesses de miroir à partir du fichier hôte mis en cache
* base: miroir.dc.uz
* Extras: miroir.dc.uz
* Mises à jour: miroir.dc.uz
Python 2.7.5 (x86_64)
Un langage de programmation interprété, interactif et orienté objet
php 5.4.16 (x86_64)
Langue de script PHP pour créer des sites Web dynamiques

Exemple 4: Installez le package avec la méthode YUM en utilisant Python dans CentOS

L'installation du package avec YUM nécessite de configurer et de terminer une transaction. La classe Yumbase du module YUM fournit la méthode pour installer les packages dans CentOS à l'aide de Python.

Importer un système d'exploitation
importer sys
importer miam
yb = yum.Yumbase ()
YB.installer (name = 'php')
YB.résolvedeps ()
YB.processTransaction ()

Nous déployons la classe yumbase () dans la variable «yb» après l'importation des modules YUM dans le script Python précédent. Ensuite, nous utilisons le YB.Installez la commande pour simplement installer le package spécifié. Le YB.Installer () Méthode prend le «nom» comme un argument auquel nous attribuons le nom du package «PHP» pour définir la transaction. Après cela, pour initier la résolution des dépendances, le «YB.RESOLVEDEPS () ”La méthode est appelée. Ensuite, la méthode processTransaction () déclenche l'installation du package «PHP».

Nous pouvons voir dans la sortie que le package PHP est installé avec succès dans le système d'exploitation CENTOS en interagissant avec les méthodes YUM.

[root @ linux01 kalsoom] # script python.py
Plugins chargés: FastSetMirror, Langpacks
Chargement des vitesses de miroir à partir du fichier hôte mis en cache
* base: miroir.dc.uz
* Extras: miroir.dc.uz
* Mises à jour: miroir.dc.uz
Package PHP-5.4.16-48.EL7.x86_64 déjà installé et dernière version
Vérification des transactions en cours d'exécution

Exemple 5: Définissez un référentiel à un emplacement donné avec la méthode YUM en utilisant Python dans CentOS

Yum peut être configuré pour récupérer un référentiel à n'importe quel endroit. Il prévoit accepter un paramètre de ligne de commande qui contient l'URL du référentiel.

Importer un système d'exploitation
importer sys
importer miam
url = sys.Argv [1]
yb = yum.Yumbase ()
Sinon YB.setCachedir (force = true, réutiliser = false): imprimer >> sys.stderr, "permettre de créer un TMP. cachedir. "
système.sortie (1)
YB.se soustraire.DisableRepo ('*')
YB.add_enable_repo ('newrepos', [url])

Ici, nous employons le YB.se soustraire.Méthode DisableRepo ('*') qui désactive tous les référentiels pendant que nous donnons le symbole d'astérisque à l'intérieur. Après cela, nous appelons le YB.Méthode add_enable_repo () pour activer le référentiel donné où l'URL est définie.

Le script Python précédent, lors de l'interaction avec YUM, définit le référentiel donné à l'emplacement spécifique de CentOS qui génère les résultats suivants:

[root @ linux01 kalsoom] # script python.py url: // à / nouveau / repos
Plugins chargés: FastSetMirror, Langpacks

Conclusion

Ce guide a exploré les moyens d'utiliser l'API Python du package YUM. Nous exécutons simplement la commande UM à partir du script Python pour mettre à jour l'opération. Ensuite, nous avons utilisé le package Yum pour la configuration de Yum dans Centos. De plus, le package spécifique est interrogé à l'aide du module YUM. Après cela, nous avons démontré la façon d'installer le package avec la méthode d'installation de yum. De la même manière, nous pouvons également désinstaller ce package en utilisant le YB.Méthode de suppression (). En fin de compte, nous définissons le référentiel à l'emplacement en interagissant avec le module YUM en Python.