Yum : faire face au –skip-broken !
Si vous êtes un utilisateur de Red Hat, CentOS ou Fedora, vous avez eu au moins une fois droit à ce joli message, alors que vous tentiez d’installer un paquet :
Error: Package: ... ... You could try using --skip-broken to work arrond the problem
Surtout, n’insistez pas et suivez le tuto que je vous ai concocté afin de remettre votre distribution Linux sur deux jambes ! ;+)
Yum history undo
L’historique des commandes YUM est stocké dans la base SQLite /var/lib/yum/history-yyyy-mm-dd.sqlite, où yyyy-mm-dd correspond à la date de création de la base. Vous pouvez d’ailleurs générer une nouvelle base à l’aide de la commande yum history new.
Pour visualiser l’historique, vous disposez de deux méthodes. La 1ère affiche les 20 dernières transactions ; la 2e montre le détail de la 1ère transaction :
yum history yum history info 1
Pour revenir à une situation antérieure, il suffit d’annuler les installations effectuées précédemment, en partant de la plus récente vers la plus ancienne. Evitez de revenir à la transaction n°1 !!! ;+)
yum history undo 60 yum history undo 59 ...
La gestion des priorités sous Red Hat / CentOS
A l’occasion de la formation de 8 jours que je donne sur Linux, Wilfried a oublié de gérer les priorités au niveau du dépôt EPEL. Le verdict ne s’est pas fait attendre et il a eu droit à un –skip-broken. A sa décharge, le début de la formation fut assez intense. Nous avons alors dû annuler les transactions comme je vous l’ai indiqué ci-dessus, à l’aide de la commande yum history.
Nous avons alors installé le plugin yum-plugin-priorities . L’utilisation de ce plugin est antinomique avec celle de yum-plugin-protectbase.
yum install yum-plugin-priorities
Ensuite, nous avons édité le fichier /etc/yum.conf en y ajoutant dans la section [main], afin d’affecter la priorité la plus faible par défaut au cas où nous omettrions d’indiquer la priorité au niveau d’un dépôt. La valeur 1 est la priorité la plus forte !
priority=99
J’ai ensuite ajouté le dépôt EPEL (Extra Packages for Enterprise Linux), qui contient les paquets rétroportés de Fedora vers CentOS / Red Hat :
yum install epel-release
J’ai enfin ajouté le dépôt ELRepo, qui contient les derniers drivers et noyaux disponibles :
yum install elrepo-release
Dépôt CentOS-Base
Je vous recommande la configuration suivante pour le dépôt /etc/yum.repos.d/CentOS-Base.repo :
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 priority=11 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 priority=11 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 priority=12 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1 priority=13
Si je commence à 11, c’est pour intercaler d’autres dépôts comme ceux de MariaDB, PostgreSQL, afin de disposer des versions les plus fraîches des éditeurs.
Dépôt EPEL
Concernant le dépôt /etc/yum.repos.d/epel.repo, j’ai affecté une priorité plus basse, de manière à privilégier les paquets de la distribution.
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 enabled=1 priority=21
Dépôt ELRepo
Pour le dépôt /etc/yum.repos.d/elrepo.repo, je descends la priorité d’un cran supplémentaire !
[elrepo] name=ELRepo.org Community Enterprise Linux Repository - el7 baseurl=http://elrepo.org/linux/elrepo/el7/$basearch/ http://mirrors.coreix.net/elrepo/elrepo/el7/$basearch/ http://jur-linux.org/download/elrepo/elrepo/el7/$basearch/ http://repos.lax-noc.com/elrepo/elrepo/el7/$basearch/ http://mirror.ventraip.net.au/elrepo/elrepo/el7/$basearch/ mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo.el7 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org enabled=1 priority=31 [elrepo-kernel] name=ELRepo.org Community Enterprise Linux Kernel Repository - el7 baseurl=http://elrepo.org/linux/kernel/el7/$basearch/ http://mirrors.coreix.net/elrepo/kernel/el7/$basearch/ http://jur-linux.org/download/elrepo/kernel/el7/$basearch/ http://repos.lax-noc.com/elrepo/kernel/el7/$basearch/ http://mirror.ventraip.net.au/elrepo/kernel/el7/$basearch/ mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org enabled=1 priority=32 [elrepo-extras] name=ELRepo.org Community Enterprise Linux Extras Repository - el7 baseurl=http://elrepo.org/linux/extras/el7/$basearch/ http://mirrors.coreix.net/elrepo/extras/el7/$basearch/ http://jur-linux.org/download/elrepo/extras/el7/$basearch/ http://repos.lax-noc.com/elrepo/extras/el7/$basearch/ http://mirror.ventraip.net.au/elrepo/extras/el7/$basearch/ mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-extras.el7 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org enabled=1 priority=33
Vous pouvez maintenant faire vos installations et vos mises à jour en toute sérénité, sans risque de rencontrer un nouveau « skip broken » .