Dernièrement, j’ai rencontré un problème à la mise à jour d’un ordinateur sous Arch. L’erreur indiquait: « la préparation de la transaction a échoué (paquet invalide ou corrompu) ».
$ sudo pacman -Syu
:: Synchronisation des bases de données de paquets...
core est à jour
extra est à jour
community est à jour
:: Début de la mise à jour complète du système...
erreur : l’ouverture du fichier /var/lib/pacman/local/blender-17:2.78-1/desc a échoué : Aucun fichier ou dossier de ce type
résolution des dépendances...
recherche des conflits entre paquets...
avertissement : les métadonnées pour le paquet blender-17:2.78-1 n’ont pas pu être totalement chargées.
erreur : la préparation de la transaction a échoué (paquet invalide ou corrompu)
La première étape pour que Pacman accepte d’effectuer la mise à jour du système consiste à retirer le paquet posant problème, ici blender.
sudo pacman -R blender
Une fois le paquet retiré, on peut procéder à la mise à jour.
sudo pacman -Syu
Ou pas, puisque j’obtiens cette fois des erreurs de conflits de fichiers :
erreur : la validation de la transaction a échoué (conflit de fichiers)
ttf-dejavu : /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf est déjà présent dans le système de fichiers
ttf-dejavu : /etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf est déjà présent dans le système de fichiers
ttf-dejavu : /etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf est déjà présent dans le système de fichiers
ttf-dejavu : /etc/fonts/conf.d/57-dejavu-sans-mono.conf est déjà présent dans le système de fichiers
ttf-dejavu : /etc/fonts/conf.d/57-dejavu-sans.conf est déjà présent dans le système de fichiers
ttf-dejavu : /etc/fonts/conf.d/57-dejavu-serif.conf est déjà présent dans le système de fichiers
Des erreurs se sont produites, aucun paquet n’a été mis à jour.
Dans ce cas précis, la procédure à suivre consiste à vérifier pour chaque fichier, si celui-ci est utilisé par l’un des paquets du système.
$ sudo pacman -Qo /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
erreur : aucun paquet ne contient /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf
Une fois assuré que le fichier est inutilisé, on le renomme pour en conserver un exemplaire, au cas où. D’après la documentation, celui-ci sera nettoyer lors de la mise à jour.
$ sudo mv /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf.save
Une fois ces opérations effectuées pour chacun des fichiers posant problème, on peux relancer à nouveau le processus de mise à jour.
sudo pacman -Syu
Cette fois, les paquets sont mis à jour correctement, tant mieux! En me basant sur ce que j’ai lu, il semble que l’erreur « paquet invalide ou corrompu » apparaisse dans différents cas de figure. Si l’erreur devait réapparaître, il n’est donc pas exclu de devoir trouver une autre solution pour la résoudre.