Yum
| 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
- Rpm — gestion bas niveau des paquets
- Createrepo
- RHEL7