Introduction à la gestion des packages RPM / YUM

Introduction à la gestion des packages RPM / YUM
Red Hat Package Manager est l'utilitaire de gestion de package open-source par défaut construit en vertu de la licence publique générale (GPU). Le système de gestion des paquets est destiné à tous les dérivés Linux basés sur un chapeau rouge comme Fedora, Rhel et Centos. RPM facilite les administrateurs système avec les cinq modes de base d'opérations de gestion des packages: installation, mise à jour, supprimer, interroger et vérifier les packages.

De plus, YellowDog Updater Modified (YUM) est à RPM ce que l'outil de gestion des packages APT est pour DPKG Utility dans Debian Packaging System: Il résout les problèmes de dépendance du package de RPM. Dans ce guide, nous présenterons brièvement Yum. Tandis que nous aurons une introduction et un arrière-plan approfondis au système d'emballage RPM pour les distributions Red Hat Linux.

Arrière-plan

Dans les premiers jours de Linux, les logiciels / programmes ont été inclus dans le système en compilant le code source en binaires Runnable. Parfois, ils ont été compilés sous la forme d'un package appelé Tarballs contenant plusieurs fichiers. Après l'installation du logiciel à partir d'un tarball, tous les fichiers exécutables, documents, fichiers de configuration et bibliothèques se répandaient sur le système dans les répertoires pertinents.

Cependant, cette façon d'inclusion des applications a ses limites:

  • L'incapacité de l'utilisateur à trouver des documents de programme et des fichiers de configuration.
  • Difficulté à trouver les dépendances requises du programme.
  • Exige que l'utilisateur localise et supprime chaque fichier de programme individuellement.
  • N'a pas contenu de métadonnées: par conséquent, après l'installation, les utilisateurs n'étaient pas au courant de la version du programme et d'autres détails.

Depuis lors, les distributions Linux ont couvert un long chemin en fournissant des logiciels dans des programmes complexes préfabillés appelés packages. Par conséquent, toutes les distributions Linux ont suivi deux principaux formats d'emballage, RPM et DEB. Dans cet article, nous nous concentrons sur un système d'emballage RPM.

Commencer

Les systèmes de gestion des packages RPM, YUM et DEB (pour les distributions Debian Linux) ont de nombreuses similitudes. Tous peuvent mettre à jour, installer, supprimer et mettre à niveau les packages avec une installation de ligne de commande.

Au moment de toute installation de Linux, une grande section de packages est également installée, ce qui est pertinent pour l'utilisation prévue du système. Cependant, à un moment donné, un utilisateur doit ajouter de nouveaux packages pour des fonctionnalités supplémentaires, mettre à jour les packages actuels ou supprimer des packages qui ne sont pas requis dans les systèmes basés sur Red Hat.

Voyons comment les gestionnaires de packages pour les distributions Red Hat Linux effectuent les tâches ci-dessus, y compris les défis de la recherche des détails du package ou les commandes que les packages contiennent.

RPM

Le gestionnaire de packages RPM propose la commande principale nommée RPM qui offre plusieurs options pour permettre à l'utilisateur de trouver toutes les informations liées au package. Les options RPM Les offres sont regroupées en trois catégories principales:

  • Installer, mettre à niveau et supprimer les packages
  • Pour interroger les informations connexes et vérifier
  • Pour effectuer des fonctions diverses

Dans cet article, nous discuterons des deux premières options de commande RPM. Même s'il peut effectuer les tâches liées à la gestion des packages de base, étant le premier outil à gérer l'emballage RPM, RPM a quelques limitations principales:

L'installation du package avec RPM échoue si la dépendance du package n'est pas disponible. Il oblige en outre l'utilisateur à rechercher quel package contient le composant, qui a lui-même certaines dépendances. De plus, les commandes RPM obligent l'utilisateur à identifier l'emplacement du fichier RPM.

MIAM

Une solution pratique aux problèmes ci-dessus est YUM qui automatise la mise à jour et la gestion du package vers le système RPM. Il fournit également la gestion des dépendances en considérant les packages RPM, non pas comme un logiciel individuel mais en tant que partie d'un système de référentiel.

Emballage RPM

Le package RPM est la combinaison de fichiers de configuration, de commandes, de documents pour fournir une fonctionnalité logicielle. Il contient également des métadonnées qui contient du contenu du package, d'où il vient ou installé, de version et de détails de dépendance avec d'autres informations.

Avant de progresser dans les fichiers de package RPM, le nom du package lui-même partage de nombreux détails sur le logiciel. Pour trouver les détails d'un package déjà installé à l'intérieur du système, utilisez le RPM commande avec le -qi Option d'information de requête:

[fedora @ fedora] $ sudo rpm -qi nmap | moins
Nom: NMAP
Époque: 3
Version: 7.80
Libération: 11.FC34
Architecture: x86_64
Date d'installation: mar 29 juin 2021 12:45:34 PM EDT
Groupe: non spécifié
Taille: 24743073

RPM de source: NMAP-7.80-11.FC34.SRC.RPM
Date de construction: jeu 11 mars 2021 12:34:34 AM HNE
Build Host: buildvm-x86-27.IAD2.fedoraproject.org
Packager: Fedora Project

La sortie de la commande ci-dessus partage les détails d'où le programme a été téléchargé, directement à partir du référentiel YUM ou de tout support d'installation. De même, il partage également les détails du sens du programme installé, qui l'a construit, sa taille et quand il a été installé.

Le logiciel pour les distributions Linux provient de projets open source appelés fournisseurs de logiciels en amont. Ils rendent le logiciel disponible avec des conditions de licence. Les distributions construisent le code source en binaires et les consolident avec d'autres composants pertinents dans un package.

Le package RPM consolidé est signé pour vérifier son intégrité et ajouté au référentiel en correspondance à la distribution et à l'architecture. Tous les packages RPM proviennent des référentiels YUM disponibles à l'intérieur d'un répertoire du serveur Web, d'un répertoire de machine local ou d'un CD ou d'un DVD de support moyen ou d'un serveur FTP.

Emplacement du forfait

L'emplacement des fichiers de référentiel est disponible dans le système de l'utilisateur à l'intérieur / etc / yum.se soustraire.d/ répertoire, c'est l'emplacement par défaut pour stocker les informations de référentiel. Cependant, les utilisateurs peuvent également trouver ou spécifier ces emplacements dans le fichier de configuration de Yum principal / etc / yum.confli.

[fedora @ fedora] $ cat / etc / yum.repo.d / fedora.repo | moins

Un fichier de référentiel contient plusieurs copies de packages de distribution disponibles à partir de différents emplacements, également appelés miroirs. Par conséquent, il informe Yum de l'emplacement du miroir le plus proche pour le téléchargement le plus rapide. Le fichier de référentiel dispose de trois sections, contenant des informations sur les packages normaux, de débogage et enfin source.

Tout comme Debian Packaging, RPM et YUM obtiennent des détails sur les packages installés de la base de données locale. Les gestionnaires de packages récupèrent les métadonnées (de / var / cache / yum répertoire) sur les packages à l'intérieur de la base de données locale à partir des référentiels activés.

Télécharger les RPM dans le référentiel de Yum

Pour examiner le contenu du RPMS ou pour les installer dans un environnement non réseau, un utilisateur peut avoir besoin de télécharger le package. Il peut être rendu possible à l'aide de la commande yumdownloader. Utilisez la commande yumdownloader, avec le nom du package pour le télécharger dans le répertoire actuel. Par exemple, téléchargez l'éditeur de texte VIM comme suit:

[fedora @ fedora] $ yumdowner vim

Ou, utilisez l'option-Resolve pour télécharger les dépendances requises pour le package.

[fedora @ fedora] $ yumdowner - Resolve Vim

(4/6): vim-minimal-8.2.3046-1.FC34.x86_64.RPM 208 Ko / s | 698 KB 00:03
(5/6): VIM-COMMON-8.2.3046-1.FC34.x86_64.RPM 727 Ko / s | 6.6 MB 00:09

Installation du RPM

Même si le RPM La commande peut effectuer une installation et des mises à niveau de base, les utilisateurs ne l'utilisent que lorsque les fichiers du programme sont déjà dans le répertoire actuel et sont prêts à installer. Puisque VIM est déjà disponible dans le répertoire actuel, installez-le via RPM commande avec un -je Option avec le nom du package entier, comme suit:

[fedora @ fedora] $ yumdowner - Resolve nmap-7.80-11.FC34.x86_64.RPM
[fedora @ fedora] $ sudo rpm -i nmap-7.80-11.FC34.x86_64.RPM

Utilisez le -U option pour mettre à niveau le package avec un -HV Option d'imprimer les panneaux de hachage et la sortie verbale détaillée. Notez que l'option -u installe le package Zsh même lorsqu'il est déjà installé.

[fedora @ fedora] $ sudo rpm -uhv nmap-7.80-11.FC34.x86_64.RPM
Vérification… ################################# [100%]
Préparation… ################################ # ° [100%]

Le RPM La commande offre un autre type d'installation avec le -F (rafraîchir) Options qui installent un package uniquement si une version antérieure de ce package existe. Il est utile dans un scénario lorsque l'utilisateur souhaite mettre à jour tous les RPM installés dans un répertoire actuel.

[fedora @ fedora] $ rpm -fhv *.RPM

Les utilisateurs peuvent ajouter plus d'options à l'une des options d'installation, telles que -Rempacépkgs L'option permet de réinstaller un package si un composant de celui-ci est supprimé à tort. De la même manière, -oldpackage L'option permet l'installation d'une ancienne version du package.

[fedora @ fedora] $ sudo rpm -uhv --replacepkgs emacs-common-24.4-3.FC21.x86_64.RPM
[fedora @ fedora] $ sudo rpm -uhv --oldpackage zsh-4.3.10-7.EL6.x86_64.RPM

RPM

Pour supprimer les packages RPM, utilisez le -e Option de la commande rpm avec seulement un nom de base de package. La sortie de la commande suivante s'affiche que, contrairement à la suppression des packages dans le système de packaging Debian, il ne montre aucune dépendance supprimée dans le processus.

[fedora @ fedora] $ sudo rpm -e nmap

Notez que, contrairement à l'installation du package, il n'invite pas avant le retrait du package. Mais si le package est une dépendance pour un autre programme, l'utilisateur reçoit un message d'erreur car la commande RPM ne parvient pas à la supprimer.

Interroger les informations RPM

Dans cette section, nous discuterons de diverses façons d'interroger les informations via le RPM commande. Dans la section RPM Packaging, nous apprenons à afficher des informations sur un package déjà installé via -qi information. De même, la commande rpm permet également l'affichage des fichiers, des fichiers de configuration et d'autres documents à l'aide de -QL, -QC, et -QD Options, comme suit:

[fedora @ fedora] $ rpm -ql nmap
/ usr / bin / nmap
/ usr / bin / nping
/ usr / lib /.build-id
/ usr / lib /.build-id / 4e

[fedora @ fedora] $ rpm -qc nmap
[fedora @ fedora] $ rpm -qd nmap
/ usr / share / doc / nmap / readme
/ usr / share / doc / nmap / nmap.usage.SMS
/ usr / share / man / de / man1 / nmap.1.gz
/ usr / share / man / es / man1 / nmap.1.gz

Les packages RPM comprennent une pléthore d'informations qui peuvent être récupérées avec divers drapeaux. Par exemple, un utilisateur peut utiliser l'option de-require pour trouver des programmes ou des fichiers préalables pour installer un programme EMAC-COMMON.

[fedora @ fedora] $ RPM -Q - Requier EMACS-COMMON
De même, interrogez les informations sur les scripts exécutés avant et après l'installation ou le retrait du RPM à l'aide du --scripts option.
[cc lang = "text" width = "100%" height = "100%" échappé = "true" theme = "Blackboard" Nowrap = "0"]
[fedora @ fedora] $ RPM -Q - Script Httpd

Une autre caractéristique importante qui RPM les offres sont un -queryformat Option qui nous permet de demander des informations telles que les balises et la sortie dans n'importe quel format que l'utilisateur préfère. Exécutez la commande suivante pour afficher toutes les balises disponibles:

[fedora @ fedora] $ rpm --querytags | moins
CAMBRE
Archiver
Noms de base
Bugurl
Buildarchs
Hôte de construction
TEMPS DE CONSTRUCTION

Par exemple, pour afficher le nom, la taille et le numéro de sortie de la balise binutiles, Utilisez la commande suivante:

[fedora @ fedora] $ rpm -q binutils --Queryformat "Le package est% name, \ et sa taille est% size \ n".

Le package est de binutils, sa taille est de 31814958 et la version est 41.FC34

Enfin, ajoutez le -p Inclinez l'option de requête pour aider à enquêter sur les RPM partagés par quelqu'un avant l'installation.

[fedora @ fedora] $ yumdowner Emac-Common
[fedora @ fedora] $ RPM -QIP EMACS-COMMON-27.2-3.FC34.x86_64.RPM

Ce package contient tous les fichiers communs nécessaires par Emacs, Emacs-Lucid ou Emacs-Nox.

Vérification du RPM

La base de données RPM contient des empreintes digitales pour chaque fichier de package qui permet à l'utilisateur de vérifier son intégrité. La commande RPM offre un -V fonction pour vérifier toutes les modifications apportées aux composants de package installés. Cependant, il est important de noter que les modifications se produisent dans le fichier de configuration après l'installation, mais les modifications des binaires sont un problème.

Installez le package EMAC-Common et apportez des modifications à ses fichiers. Mais n'oubliez pas de supprimer et de réinstaller le package après expérimentation.

[fedora @ fedora] $ rpm -i zsh-5.8-5.FC34.x86_64.RPM
[fedora @ fedora] $ sudo -i
[root @ fedora ~] # echo fedora> / bin / zsh
[root @ fedora ~] # rm / etc / zshrc
RM: supprimer le fichier régulier '/ etc / zshrc'? y
[fedora @ fedora] $ rpm -v vim
manquant c / etc / zshrc
S.5… t. / usr / bin / zsh

La sortie ci-dessus affiche les modifications apportées dans le fichier / etc / alors que le fichier / etc / est supprimé. Les lettres ou les nombres dans la sortie ci-dessus représentent toutes les modifications apportées aux fichiers de package. Ces lettres remplacent les points après la manipulation du fichier, certains des indicateurs sont les suivants:

  • S: la taille du fichier diffère
  • D: Dispositif majeur / mineur Déliachance
  • M: le mode fichier diffère
  • P: les capacités diffèrent
  • U: La possession des utilisateurs diffère
  • 5: la somme MD5 diffère
  • T: temps de modification

Vous pouvez trouver plus de détails sur les indicateurs de vérification de la documentation officielle.

La sortie ci-dessus aide à interpréter les modifications de la taille du fichier, les modifications de MD5SUM contre l'empreinte du fichier et le temps de modification. Le RPM La commande offre un -Rempacépkgs Option pour restaurer l'état du package. Vérifiez à nouveau avec l'option Vérifier: aucune sortie ne montre aucune modification.

[fedora @ fedora] $ rpm -i --replacepkgs zsh-5.0.2-7.EL7.x86_64.RPM
[fedora @ fedora] $ rpm -v vim

La pratique idéale consiste à garder une sauvegarde de la base de données / var / lib / rpm à un support en lecture seule. Il aide à vérifier l'intégrité du package avec la caution qu'il n'est pas vérifié dans une base de données trempée / fissurée.

Conclusion

L'article détaille l'histoire et l'évolution du système d'emballage pour la distribution de Red Hat Linux. Il fournit également des détails sur l'emballage RPM et son emplacement à l'intérieur du système. Enfin, l'article fournit des détails approfondis sur les cinq opérations de base de RPM.