ClefAgreg
(Contact:
, distribuée sous licence GPL)
ClefAgreg est fondé sur Debian et dispose donc de tous les logiciels fournis avec cette distribution.
Le problème est que pour ne pas encombrer la mémoire ainsi que la clef USB, ClefAgreg est bati autour de systèmes de fichiers compressés et en lecture seule. L'utilisation de AUFS et d'un système de fichier en mémoire permet de palier cet inconvénient. Intuitivement, imaginer que vous modifiez un livre en utilisant un calque avec les modifications sur ce calque. C'est en gros le fonctionnement de ClefAgreg.
Il est possible de récupérer le nouveau système de fabrication d'extension en installant l'extension extension_extension.sqh ainsi que l'extension_dpkg correspondant à la version de votre clef. Voir la page de téléchargement des extensions pour cela.
- La première chose consiste à rapatrier la base de données nécessaires à l'outil apt-get pour gérer les paquets.
Celle ci est sous la forme d'une extension, un fichier extension_dpkg-[$VERSION DE LA CLEF].sqh. Ainsi, pour ClefOffi-6.1,
cette extension est extension_dpkg-offi-6.1.sqh. La version se trouve dans le fichier /FB dans l'arborescence du système (ainsi pour ClefAgrInt 6.6, la version est interne-6.5 et le fichier extension_dpkg-agreg-interne-6.5.sqh.
- Une fois cette extension mise dans le répertoire agreg de la clef, et la clef démarrée afin de pouvoir la prendre en compte, les paquets sont disponibles. Un simple dpkg -l en ligne de commande permet de le voir.
En tapant dans une console sudo su, on se retrouve sous root et il est possible d'installer ce que l'on veut. Par exemple graphmonkey.
# apt-get update
# apt-get install graphmonkey
[...]
#
- Il ne reste plus qu'à sauvegarder le résultat. Cela se fait en tapant sauve-extension (sous root):
# sauve-extension
Plusieurs choses assez longue se passent:
- Le système commence par récupérer les modifications de la base apt-get et à en faire une archive tar dans /tmp. À cet instant, l'occupation mémoire est maximale mais reste mesurée, si le système passe cette étape, tout ira bien.
- Ces modifications sont supprimées de la mémoire et une extension de nom extension_dpkg-[$VERSION DE LA CLEF]-numerounique.sqh est crée dans le répertoire agreg de la clef (par exemple extension_dpkg_offi-6.1-1301081878.sqh, le numéro correspond à la date, ainsi 1301081878 correspond à vendredi 25 mars 2011, 20:37:58 (UTC+0100).
- Enfin, les fichiers installés sont également sauvegardés dans une extension de nom extension_[$NOM].sqh où $NOM vous est demandé à un moment.
Il faut noter que la selection des fichiers mis dans l'extension est faite automatiquement et peut être imparfaite. Les fichiers non récupérés sont ceux correspondant au fichier /var/FB-filtre. Les fichiers extension._...sqh crées peuvent être manipulés au moyen de unsquashfs et mksquashfs dans un deuxième temps pour être peaufinés. Dans la pratique c'est souvent inutiles.
Ancienne méthode
Pour mettre de nouveaux paquets, il suffit de faire les commandes ci-dessous, une vidéo montrant la démarche
est visible en suivant ce lien:
- Ouvrir une console sous root. Cela peut se faire en tapant «sudo xterm» sous une consode ou en se loggant en tant que root sur une console texte (ctrl-alt-f2 par exemple).
- Installer l'arborescence de dpkg. Cela se fait en tapant «dpkg-get»ren tant que root. Le fichier est cherché sur la clef (à la racine) et en cas d'échec sur le site de ClefAgreg.
- On se trouve désormais devant une debian Etch usuelle. Taper les commandes usuelles, par exemple «aptitude install rogue» par exemple. Il est possible de définir de nouvelles icones et de modifier le bureau en modifiant le répertoires /etc/skel/.xtdesktop (des icones sont sur http://clefagreg.dnsalias.org/icones/))
- Une fois que tout est terminé, il suffit de taper «sauve-extension». Cela fait plusieurs choses:
- Tout d'abord, cela fait un «aptitude clean» afin de vider le cache de aptitude.
- Puis cela sauvegarde l'arborescence de dpkg ainsi que de /usr/share/doc dans une archive «dpkg-agreg-$VERSION.tar.bz2» à la racine de la clef USB. Les fichiers que l'on souhaite conservés doivent être rajoutés au fichier /var/FB-garde, ceux qu'on souhaite supprimer explicitement doivent être rajoutés à /var/FB-vire.
- Enfin, une image cloop compressée est fabriquée. (version <= 4.4) ou bien une image squashfs (version 4.6 et +).
Celle ci est uniquement consitituée des fichiers modifiés ou rajoutés. Un filtre est établi: Les fichiers sous /var/tmp, /tmp, /proc, /root, ... ne sont pas pris en compte. Entre autres, les fichiers sous /lib/modules ne sont pas pris en compte, en effet de façon étonnante, l'insertion des modules agit comme une modification sur ces fichiers (bien que ça ne soit pas nécessaire) et sans ce filtre, on intègrerait les modules chargés à chaque fois. Le filtre peut être modifié en éditant /var/FB-filtre.
Pour une version <= 4.4, l'image cloop crée se trouve sur la clef dans le répertoire agreg sous un nom «extension$i» où i est le numéro de l'extension. Il est en effet possible de faire plusieurs modifications d'affilée.
Pour une version 4.6 ou plus, un nom est demandé lors de la création du fichier, celui est mis dans le répertoire agreg de la clef.
Lors du reboute suivant, la modification sera chargée. Ce système permet de bénéficier à la fois de la compression très efficace de cloop (division par 2,7 en gros) et de la souplesse d'un système modifiable.
- Pour annuler une extension c'est très simple. Chaquet extension est sous la forme d'un fichier supplémentaire agreg/extension...
Il suffit de supprimer le dernier fichier extension pour annuler les dernières modifications. Attention cependant à deux détails:
- Il faut dans ce cas revenir à un fichier dpkg-agreg-???.tar.bz2 cohérent. Dans le doute donc conserver ces fichiers quelque part.
L'extension de ces fichiers (ce qu'il y a entre «dpkg-agreg-» et «.tar.bz2» est le contenu du fichier /FB. Il suffit donc de mettre
à jour ce fichier par «echo perso-1 > /FB», «echo perso-2 > /FB»,«echo perso-3 > /FB»,... pour avoir des fichiers
dpkg-agreg-perso-1.tar.bz2, dpkg-agreg-perso-2.tar.bz2, dpkg-agreg-perso-3.tar.bz2 facilement identifiables.
- Les effets d'une suppression de extension2 alors qu'extension3 existe sont assez imprévisibles. Dans la plupart des cas ça
devrait bien se passer mais les fichiers dpkg-agreg-???.tar.bz2 seront dans ce cas incohérents.