Main menu:

Site search

Categories

janvier 2012
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Archive

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.

Comments

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.

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 !