{{tag>rpm yum url yumdownloader localinstall paquets centos package rpm2cpio extraire}}
====== RPM et commandes utiles ======
* Connaître les dépendances d'un paquet :
rpm -qpR {.rpm-file}
rpm -qR {package-name}
* Savoir a quel paquet apartient un fichier donné :rpm -qf /mon/fichier
* Lister les fichiers d'un paquet :
rpm -qlp {.rpm-file}
rpm -ql {package-name}
* Lister les fichiers d'un paquet avec leurs permissions :
rpm -qlv {package-name}
* Afficher le changelog d'un paquet RPM :
rpm -q --changelog -p {.rpm-file}
* Extraire un fichier d'un paquet RPM (noter le "./" en debut de chemin de fichier):
rpm2cpio mon.fichier.rpm | cpio -ivd ./mon/fichier/a/extraire
comme par exemple : rpm2cpio /tmp/jenkins-1.609.3-1.1.noarch.rpm | cpio -ivd ./etc/logrotate.d/jenkins
Cela va créer l’arborescence nécessaire pour extraire le fichier avec son chemin relatif
* Obtenir l'adresse de télechargement d'un paquet RPM :\\ Il peut arriver si une machine n'est pas connectée a internet qu'on veuille juste obtenir le lien ves le RPM qu'on souhaite installer: pour se faire, utiliser l'outil **yumdownloader** du paquet **yum-utils**, par exemple ppour le paquet tmux :
yumdownloader --urls tmux
* Télécharger uniquement les paquets sans les installer (avec en bonus la possibilité de définir le répertoire de sortie) avec le plugin **yum-plugin-downloadonly**:
# yum install yum-plugin-downloadonly
# yum install --downloadonly --downloaddir=/tmp/ puppet-server
===== Yum et commandes utiles =====
* Installer un paquet local rpm avec yum :yum --nogpgcheck localinstall mon.fichier.local.rpm
* Lister les paquets des dépendances requises pour un paquet particulier :yum deplist monpaquet
* voir le changelog complet d'un paquet (yum install yum-plugin-changelog pour installer le plugin changelog) : yum changelog all monpaquet
* voir le changelog depuis une date : yum changelog 2019-01 monpaquet
* voir le changelog d'un paquet pret a etre mis a jour :yum update monpaquet --changelog
==== Dire a yum de ne pas mettre a jour certains paquets ====
Tout d'abord il vous faudra installer le plugin yum versionlock si vous ne l'avez pas deja :# yum install yum-plugin-versionlock
* ensuite pour figer une version (par exemple sur ansible) :# yum versionlock ansible
* lister les paquets dont la version a été bloquée : # yum versionlock list
* supprimer le lock unitairement (par exemple sur ansible) :# yum versionlock exclude ansible
* effacer cette liste (bien sur attention cela va autoriser les mises a jour :p) # yum versionlock clear
Si d'aventure vous vouliez voir quelles versions seraient disponibles sans l'utilisation de versionlock, il suffit de le desactiver temporairement, comme par exemple avec la commande suivante :# yum --disableplugin=versionlock update