3 votes

comment rendre yum tolérant aux URLs de repo cassées

J'ai un certain nombre d'instances CentOS, dont certaines ont été utilisées par des développeurs et ont des dépôts tiers (parfois les leurs) activés. Cependant, d'un point de vue administratif, il est pratique de pouvoir forcer une mise à jour dans un script sans avoir à manipuler le yum.conf local, ou à analyser la sortie de yum.repos.d pour voir quel est le dépôt défectueux.

Il semble que les développeurs aient eu l'œil pour cela avec cette option ;

-t, --tolerant

mais il est clair que c'était un défi plus important que ce qu'ils avaient prévu car dans la page de l'homme ;

              This option currently does nothing.

Évidemment, lorsque je fais cela manuellement, je peux contourner les dépôts avec ;

yum --disablerepo=broken-repo  deplist mypackage

et pour rendre une mise à jour scriptée plus robuste, je peux utiliser (qui au moins installe définitivement les mises à jour de la distro)

yum -y --disablerepo=* --enablerepo=updates update

mais cela ne couvre pas le cas où il y a EPEL, ou rpmforge, ou rbel, ou un autre distributeur de paquets pour lequel je devrais d'abord analyser le fichier yum.repos.d.

2voto

Peter Stone Points 1962

Ce script peut aider quelque peu :

LC_ALL=C yum repolist 2>/dev/null \
| awk '/^repo id/ {A=1; next} /^[a-zA-Z0-9_-]+ / {if(A) print $1}' \
| xargs -i yum -y --disablerepo=* --enablerepo={} update
# Some packages may need packages from other repository
yum -y update

Il fonctionne en obtenant une liste de dépôts avec yum repolist en sélectionnant les noms des dépôts à partir de la sortie en utilisant awk et ensuite essayer de les mettre à jour un par un.

Il n'est pas fiable à 100%, car il dépend du format de sortie immuable de yum. De plus, si la mise à jour doit installer un autre paquet à partir d'un dépôt différent et qu'il y a un dépôt cassé, elle échouera de toute façon - mais je suppose que ce n'est pas si courant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X