RedHat a entamé un mouvement de « simplification » de la hiérarchie des fichiers exécutables. Dans un système GNU/Linux classique, les fichiers exécutables étaient historiquement disponibles dans 4 endroits différents : /bin, /sbin, /usr/bin et /usr/sbin.
Une idée a été mise en route : mettre tous les exécutables dans /usr/bin. Les précédents répertoires devenant alors des liens symboliques pointant vers /usr/bin.
Dans un article assez complet, le mouvement des exécutables vers un répertoire unique est expliqué pour différentes raisons, dont la compatibilité accrue avec les autres unix. Et aussi dans le cadre de l’implémentation de systemd.
En dehors de la Fedora Linux 17 qui a déjà effectué la migration, Mageia l’a fait pour sa version 3, Gentoo propose un guide, OpenSuSE l’aurait fait pour sa version 12.3 (même si cela n’est pas précisé dans ses notes de publication). Pour Ubuntu, je ne saurais me prononcer, car je n’ai trouvé qu’un document technique datant de la période de développement de la Ubuntu 12.10.
Des grandes distributions du top 10 de distrowatch, il ne restait en gros que les distributions basées sur ArchLinux à ne pas avoir fini la grande fusion des exécutables en un seul emplacement. Or, en lisant la liste de publication arch-dev-public, j’ai pu trouver un fil qui annonce la grande migration, et un message a attiré mon attention. Celui qui permet de migrer tranquillement et en évitant de tout casser.
Les manipulations sont à faire à vos risques et périls. Inutile de me balancer une bombe à neutron en pleine tronche si votre système est planté par la suite.
Pour le moment, la migration a été effectuée sur testing, et je rédige ce billet depuis une ArchLinux qui a fait la migration sans casse. Le problème se situe au niveau des paquets tiers trouvé sur AUR. Et j’ai du modifié le paquet iscan qui me bloquait la migration autrement.
La migration se fait en plusieurs étapes. La première est de vérifier qu’aucun paquet n’a laissé trainer de fichiers dans un des répertoires qui deviendra au final un simple lien symbolique.
Dans un terminal, il suffit d’entrer la commande suivante :
comm -12 <(pacman -Qqm | sort) <(pacman -Qqo /bin /sbin /usr/sbin | sort -u)
Si la liste est vide tant mieux ! Sinon, il faut voir les paquets en question, voir si les auteurs sont au courant, car cela plantera la mise à jour.
Si les problèmes sont réglés, on entre les deux commandes magiques :
sudo pacman -Syu --ignore filesystem
sudo pacman -Su
Et on redémarre en serrant les fesses, même si tout s’est bien passé. Pour le moment, la manipulation est réservé aux utilisateurs d’ArchLinux testing. Cependant, je suis curieux de voir comment les développeurs de Manjaro Linux vont gérer le passage, surtout vu la popularité croissante de la distribution.
Dans le top dix de Distrowatch… déjà entendu parler de Debian ?
J’avoue que j’ai oublié Debian. Mais vu l’age de la distribution et son cycle de développement assez long, je pense sans prendre trop de risque que la migration des binaires vers /usr/bin soit terminé.
Je vais donc me flageller pour l’oubli malencontreux de la distribution qui confond stabilité et obsolescence pour sa version stable.
Merci pour le petit dénigrement au passage, ça fait toujours plaisir.
Quel dénigrement ? Dire que la Debian Stable confond stabilité et logiciels en voie d’obsolescence, c’est dénigrer ?
Dire que les logiciels proposés par la Debian Stable sont parfois obsolète au niveau upstream, c’est dénigrer ? Il est vrai que le dernier LibreOffice supporté au 3 juin 2013, c’est la version 3.6. Et non, la 3.5.xx proposée par la Wheezy.
Je pourrais aussi citer Gnome 3.4, KDE 4.8 ou encore Xfce 4.8. Le problème et la force de Debian : c’est stabilité avant tout. Même si cela contraint de vivre parfois avec des versions vieilles de 2 ans 🙁
comm -12 < (pacman -Qq|grep -v filesystem|sort) < (pacman -Qqo /bin /sbin /usr/sbin|sort)
bash: syntax error near unexpected token `('
Plutôt ça : comm -12 <(pacman -Qqm | sort) <(pacman -Qqo /bin /sbin /usr/sbin | sort -u)
OK
comm -12 <(pacman -Qqm | sort) <(pacman -Qqo /bin /sbin /usr/sbin | sort -u)
e4rat
lilo
Pour e4rat, https://aur.archlinux.org/packages/e4rat/
Il y a une méthode « crade » pour le moment, mais qui devrait fonctionner.
Lilo ? https://aur.archlinux.org/packages/lilo-git/ je pense.
Dans ce cas, désolé, mais faudrait demander au mainteneur de passer à l’unification dans /usr
De plus, il ne compile pas. Un problème au niveau du code assembleur.