Mise à jour de pacman
Depuis ce jour, une nouvelle version de pacman, la 4.0, est disponible dans les dépôts d’Archlinux. Si vous faites la mise à jour de votre système, vous risquez d’avoir une erreur.
L’erreur ressemble à ceci:
:: Les paquets suivants devraient être mis à jour en premier : pacman :: Voulez-vous annuler l'opération courante et :: mettre à jour ces paquets maintenant ? [O/n] résolution des dépendances... recherche des conflits entre paquets... Erreur: la préparation de la transaction a échoué (la satisfaction des dépendances a échoué) :: package-query: requiert pacman<3.6
Pour comprendre, il faut savoir que le gestionnaire de paquet est configuré, via le fichier pacman.conf, pour effectuer la mise à jour de pacman, si elle existe, avant toute autre mise à jour. Or pour que cette mise à jour de pacman se fasse, il faut aussi que le paquet package-query soit mis à jour.
La solution est simple et passe par l'édition du fichier /etc/pacman.conf. Il faut dans ce fichier modifié la ligne contenant SyncFirst pour y ajouter package-query. On en profitera aussi pour y mettre yaourt par la même occasion:
# If upgrades are available for these packages they will be asked for first SyncFirst = pacman package-query yaourt
Il suffit ensuite de relancer la mise à jour du système qui mettra à jour pacman:
$ sudo pacman -Syu
La mise à jour a créé un nouveau fichier pacman.conf appelé pacman.conf.pacnew et un nouveau fichier mirrorlist appelé mirrorlist.pacnew. Il va falloir modifier ces deux fichiers pour y ajouter les modifications que nous y avions faites manuellement. L'ajout du dépôt archlinux.fr par exemple.
Une fois ces modifications faites, on va renommer l'ancien fichier en *.old et on va enlever l'extension .pacnew de la nouvelle version. Celle-ci va prendre la place du fichier de configuration:
$ sudo mv /etc/pacman.conf /etc/pacman.conf.old $ sudo mv /etc/pacman.conf.pacnew /etc/pacman.conf $ sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.old $ sudo mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist
A ce moment, le gestionnaire de paquets pacman est à nouveau opérationnel. Relancez la mise à jour de votre système pour qu'il prenne en compte les mises à jour autres que pacman:
$ sudo pacman -Syu
Vous aurez remarqué que j'utilise sudo comme si j'étais sous Ubuntu. Rien ne vous empêche, bien sûr, de passer en root avec su.
Posted: janvier 17th, 2012 under Arch Linux.
Comments: 6
Tweet
Comments
Comment from admin
Time: 18 janvier 2012, 12 h 48 min
Si tu compares l’ancienne version de pacman.conf avec la nouvelle pacman.conf.pacnew, tu verras quue les deux fichiers sont différents. Normal puisque la version 4 de pacman apporte quand même son lot de nouveautés. Il y a donc dans le fichiers un certain nombre de paramètres en plus.
Mais évidemment, l’ancienne version fonctionne toujours.
Comment from Ox HaK
Time: 18 janvier 2012, 19 h 31 min
Merci !
Il manque toute fois:
$sudo gedit /etc/pacman.d/mirrorlist
Et décommentez les lignes des dépôts FR.
Avant le dernier pacman -Syu.
Comment from pipocas
Time: 18 janvier 2012, 20 h 28 min
Je n’ai pas encore eu le temps de regardé ça en détail, je l’admets. Merci du conseil.
PS bravo pour tes articles. Continue!
Comment from admin
Time: 20 janvier 2012, 22 h 59 min
@Ox Hak
C’était compris dans le « Il va falloir modifier ces deux fichiers pour y ajouter les modifications que nous y avions faites manuellement. » 😉
Comment from Luffy Duck
Time: 28 janvier 2012, 15 h 19 min
Merci pour cette info !
Comment from pipocas
Time: 18 janvier 2012, 2 h 09 min
J’ai juste ajouté
SyncFirst = pacman package-query yaourt
et
SigLevel = Never
dans options de pacman.conf
Cela semble fonctionner et je n’ai pas fait la bidouille avec les .pacnew.