Univers Libre

Archlinux dans un conteneur LXC et paquet filesystem

Written on 3 June 2013, 21:04 EDT
Tags: archlinux, lxc, sysadmin.

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).