Parmis mes conteneurs LXC, il y en a un qui tourne sous Archlinux. Comme
j'avais un peu joué avec les capabilities (7)
du noyau, qu'on peut retirer
avec lxc.cap.drop
dans le fichier de conf du conteneur, mon /sys/ (entre
autre) est en lecture seule pour le système chrooté.
Par jouer il faut comprendre rajouter des lxc.cap.drop
sur des capabilities
choisies au feeling, jusqu'à ce que ça ne marche plus. J'exagère mais c'était
un peu ça l'idée au final :-).
Donc, comme mon /sys/ est en lecture seule, la mise à jour du paquet filesystem chie lamentablement dans la colle :
error: cannot remove file '/sys/': Read-only file system
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Par flème, lorsque une mise à jour du paquet était disponible, je l'excluais manuellement avec :
# pacman --ignore filesystem -Syu
Puis vint le jour où la mise à jour d'un paquet demandait une version à jour du paquet filesystem. Forcement, ça devait arriver un jour…
Et c'est là qu'en cherchant un peu, j'ai découvert que dans la configuration de
pacman
, on peut lui dire d'empêcher un paquet de toucher à un fichier. Ça se
rapproche un peu du dpkg-divert
de Debian.
Dans /etc/pacman.conf :
NoUpgrade = sys/
NoExtract = sys/
le répertoire /sys/ sera ignoré, et la mise à jour de filesystem se fait sans soucis !
Pour plus de détails, voir pacman.conf(5)
.