Yum

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Gestion des paquets RPM
Commande yum
Contexte RHEL/CentOS 5 à 7 — remplacé par dnf sur RHEL8+ (mêmes concepts, syntaxe très proche)
Config /etc/yum.conf · dépôts dans /etc/yum.repos.d/*.repo
Voir aussi Rpm · Createrepo

yum (Yellowdog Updater, Modified) est le gestionnaire de paquets RPM historique de RHEL/CentOS/Fedora, jusqu'à son remplacement par dnf sur RHEL8+.

Configuration (proxy)

Dans /etc/yum.conf :

proxy=http://mycache.mydomain.com:3128
proxy_username=yum-user
proxy_password=qwerty

Ou via l'environnement shell :

export http_proxy="http://domain_alias\user:pass@proxy:port"
export https_proxy="http://domain_alias\user:pass@proxy:port"

Rechercher, inspecter

yum search <chaîne>              # rechercher un paquet
yum info nmap-ncat                # détails d'un paquet
yum whatprovides libcrypto.so.6   # quel paquet fournit ce fichier/cette commande

yum grouplist                     # groupes de paquets disponibles
yum grouplist -v                  # avec noms courts
yum groupinfo admin-tools

repoquery --list iftop                       # fichiers fournis par un paquet
repoquery --tree-requires fwsnort            # arbre de dépendances
repoquery -i nmap-ncat                       # infos (sans passer par yum)
repoquery --requires --resolve nmap-ncat     # dépendances résolues

Installer, mettre à jour, verrouiller

yum install <paquet>
yum groupinstall admin-tools                 # installer un groupe entier
yum update                                   # tout mettre à jour
yum clean all && yum makecache               # nettoyer/reconstruire le cache

yum install yum-versionlock
yum versionlock php-gd                       # empêcher la mise à jour de ce paquet

yum --installroot=/outils/linux/ install mysql-server   # installer dans un chroot

Retrait / réinstallation bas niveau via rpm directement (contourne les dépendances yum, à utiliser avec précaution) :

rpm -e --justdb --nodeps packagename          # retire de la base RPM sans toucher aux fichiers
rpm -Uvh --replacefiles --replacepkgs packagename
rpm -e --nodeps nmap-ncat

Historique et rollback

yum history                    # liste des transactions
yum history info 200           # détail d'une transaction
yum history undo 200           # annuler une transaction précise
yum --showduplicates list squid

Dépôts (côté client)

Un fichier *.repo dans /etc/yum.repos.d/ par dépôt :

[RHEL5-FTP]
name=Red Hat Enterprise Linux 5 ftp
baseurl=ftp://192.168.0.1/pub/yum/RHEL5
enabled=1

Fonctionne pareil pour un dépôt HTTP (baseurl=http://...) ou local (baseurl=file:///depot/REPO).

yum repolist enabled
yum repolist disabled

Créer un dépôt (côté serveur)

yum install createrepo httpd

mkdir -p /var/www/repo/rhel5-9/os/
cp -r /media/cdrom/* /var/www/repo/rhel5-9/os/
createrepo /var/www/repo/rhel5-9/os/

Servir le dépôt via Apache (/etc/httpd/conf.d/repo.conf) :

Alias /repo/ "/var/www/repo/"
<Directory "/var/www/repo/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory>

Pour que le système de groupes (groupinstall) fonctionne sur un dépôt recréé manuellement, il faut régénérer avec le fichier comps d'origine (celui du média d'install), sinon les groupes sont absents :

createrepo -g ./repodata/comps-rhel5-server-core.xml /var/www/repo/rhel/x86_64/5/u9/os/Server

Créer un ISO personnalisé à partir d'un dépôt (ex. pour un média d'install sur-mesure) :

createrepo -s sha -g /data/iso-build/Server/repodata/comps-rhel6-Server.xml /data/iso-build/Server/
mkisofs -r -J -T -V "RHEL5 32" -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -o /data/RHEL5-custom.iso /data/iso-build

Sécurité

yum install yum-plugin-security
yum --security check-update
yum list-security
yum update --security                          # n'appliquer que les correctifs de sécurité

yum updateinfo list cves
yum updateinfo list --cve CVE-2012-3954
yum update --advisory ELSA-2012-1141           # mettre à jour selon une advisory précise

Interface graphique

yumex (Yum Extender) : frontend graphique pour yum.

yum install yumex

Pour aller plus loin

Voir aussi