[ArchLinux] Downgrade d’un package

Il est possible d’installer une ancienne version d’un package en utilisant le cache de pacman, si celui-ci n’a pas été nettoyé depuis la mise à jour précédente. Par exemple, pour revenir à la version 5.6.0-1 de npm, on utilisera la commande:

pacman -U /var/cache/pacman/pkg/npm-5.6.0-1-any.pkg.tar.xz

Et on attendra la correction du bug 19989 pour réinstaller une version 5.7.x.

[Arch Linux] Miniature dans l’explorateur

J’utilise PCManFM comme explorateur de fichiers visuel. La semaine dernière, je me suis intéressé à l’affichage des miniatures dans l’explorateur, élément cosmétique manquant jusqu’à présent. Pour les images, c’est très simple, il suffit d’installer tumbler.

pacman -S tumbler

Du coup, j’en ai profiter pour ajouter la même chose pour les vidéos avec ffmpegthumbnailer.

pacman -S ffmpegthumbnailer

Ce n’est pas grand chose, mais ça apporte un peu de diversité dans l’affichage des dossiers d’images et de vidéos.

Source : Wiki ArchLinux

[ArchLinux] Paquet invalide ou corrompu : réparer Pacman

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.