From Fedora Project Wiki

Revision as of 16:36, 24 May 2008 by Ravidiip (talk | contribs) (1 revision(s))

yum

Traduit de la version originale de yum


'yum' est un gestionnaire de paquetages. C'est un outil d'installation, de mise à jour et de suppression de paquetages et de leur dépendances sur les systèmes basés sur RPM. Il résout automatiquement les dépendances avant d'installer les paquetages. Cela rend les groupes de machines plus faciles à maintenir sans avoir à les mettre à jour manuellement en utilisant la commande 'rpm'.

Les caractéristiques de yum sont les suivantes:

  • Support des dépôts multiples
  • Configuration simple
  • Calcul des dépendances
  • Fonctionnement rapide
  • Comportement consistant du RPM
  • Support des groupes de paquetages incluant les groupes de depôts multiples
  • Interface simple

Par défaut, yum utilise des dépôts en ligne mais il peut être configuré pour utiliser des dépôts de paquets locaux. Pour plus d'informations, consultez http://fedora.redhat.com/docs/yum (version anglaise). Vous pouvez aussi utiliser la commande 'man' sur votre système Fedora Core pour obtenir la documentation de base.

man yum

Le site officiel du projet yum est http://linux.duke.edu/projects/yum/.

Existe-t-il une interface graphique pour yum telle que synaptic?

Par défaut, dans Fedora Core 5, le gestionnaire de paquetages avec interface graphique est Pirut accompagné de Pup pour les mises à jour. Les paquets 'yumex' et 'kyum' sont disponibles depuis Fedora Extras. Ils peuvent être installés au besoin par les commandes suivantes:

yumex:

yum install yumex

kyum:

yum install kyum

La vitesse de yum est-elle comparable à celle d'APT-RPM ?

yum vérifie automatiquement les dépôts chaque fois vous exécutez une commande (sauf en mode shell), tandis que APT les vérifie seulement lorsque vous lancez 'apt-get update' manuellement. Ainsi, yum semble plus lent qu'il ne l'est. Si vous voulez que yum s'exécute depuis le cache au lieu de vérifier les dépôts, exécutez 'yum -C <command>'. Consultez la page man pour plus de détails.

yum utilise maintenant sqlite par défaut pour sa base de données. Il en résulte une vitesse plus élevée que dans les anciennes version de yum. A partir de Fedora Core 4, yum recèle des améliorations significatives qui le rendent plus rapide et plus capable que les anciennes versions.

Qu'en est-il des des autres fonctionnalités avancées de APT qui ne sont pas disponibles dans yum ?

Vous pouvez obtenir ces fonctionnalités grâce au paquetage yum-utils (disponible dans le dépôt Fedora Extras). Set Vidal, sur son blog , décrit les divers outils disponibles grâce à yum-utils.

La commande suivante installe le paquetage depuis le dépôt Fedora Extras. Si vous utilisez Fedora Core 4 ou les versions ultérieures, ce dépôt est configuré et disponible par défaut. Les utilisateurs de FC3 doivent se référer à la page Utiliser les Extras (en) .

yum install yum-utils

Vous devez être en root pour utiliser cette commande.

Des outils supplémentaires sont en cours de développement.

NOTE: plus d'informations sur APT sont disponibles sur la page Apt .

Astuces

Pour des raisons de sécurité, yum s'arrête s'il y a des problèmes de dépendances dans le dépôt et n'effectue pas de mises à jour partielles. Utilisez ce script selon vos besoins. Assurez vous aimablement de reporter tout problème de dépendance au gestionnaire de bogues du dépôt approprié ou postez sur la liste du projet en question si plus de discussion est nécessaire.


#!/bin/sh
for i in <code>yum list updates |cut -f 1 -d " " |grep -A 500 -e Updated |\
grep -v -e Updates<code> ; do
echo "Updating $i"
yum -y update $i
done

Script alternatif:

yum list updates | awk '{ print $1 }' > .packages
for i in <code>cat .packages</code>;
do
yum -y update $i
done
rm -f .packages

Vérifier et éliminer les doublons

Suivez la procédure décrite sur https://www.redhat.com/archives/fedora-devel-list/2006-July/msg00378.html

Le script ci-dessous cherche des doublons et des versions inégales de paquets RPM et les supprime.


#!/bin/sh

dups="gpg-pubkey kernel kernel-devel kernel-smp kernel-smp-devel"


filter() {
while [ $# -ge 1 ] 
do
skip=0
for d in $dups
do
if [ "$1" = "$d" ]  ; then
skip=1
break
fi
done
if [ $skip -eq 0 ]  ; then
echo $1
fi
shift
done
}


list=<code>rpm -qa --queryformat "%{NAME}#%{ARCH}\n" | sort | uniq -c | \
tr '#' ' ' | awk '$1 > 1 { print $2 } '<code>
list2=<code>filter $list</code>
if [ x"$list2" != "x" ]  ; then
echo "Duplicates were found:"
echo $list2 | xargs rpm -q
exit 1
fi



list=<code>rpm -qa --queryformat "%{NAME}\n" | sort | uniq -c | \
awk '$1 == 2 { print $2 }'<code>
list2=<code>filter $list</code>
if [ x"$list2" = "x" ]  ; then
exit 0
fi

list=<code>echo $list2 | tr ' ' '\n' | xargs rpm -q --queryformat \
"%{NAME}-%{VERSION}-%{RELEASE}\n" | sort | uniq -c | \
awk '$1 == 1 { print $2 }'<code>
if [ x"$list" = "x" ]  ; then
exit 0
fi

echo "Version mismatches were found:"
for l in $list
do
rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" $l
done
exit 1