| View previous topic :: View next topic |
| Author |
Message |
Bapt Veteran


Joined: 14 Apr 2003 Posts: 1152 Location: Paris
|
Posted: Mon Jan 08, 2007 5:58 pm Post subject: [HOWTO] Paludis et squashfs |
|
|
Paludis utilisant le même arbre que portage, il dispose des même problème d'espace disque utilisé. Tout comme pour portage nous pouvons compresser l'arborescence portage dans une archive squashfs.
- Activer le module squashfs dans le noyau
- installer les utilitaires squashfs et unionfs
| Code: | | paludis -i squashfs-tools unionfs |
Charger le modules squashfs et unionfs
| Code: | modprobe squashfs
modprobe unionfs |
Créer un répertoire gentoo dans le ram disque
| Code: | | mkdir /dev/shm/gentoo |
Déplacer le répertoire distfiles pour qu'il ne soit plus dans l'arborescence des ebuilds et penser à changer dans le fichier de configuration des répertoire : /etc/paludis/repositories/*.conf les références distdir pour qu'elles pointent vers le nouveau répertoire.
Supprimer les cache et les mettre ailleurs, /var/cache/paludis par exemple, penser à modificier les fichiers de configuration en conséquence :
| Code: |
names_cache = /var/cache/paludis/gentoocache/names
|
Compresser l'arborescence gentoo
| Code: | | mksquashfs /var/paludis/repositories/gentoo /var/paludis/repositories/gentoo.sqfs -check_data |
Faire une sauvegarde de l'arborescence gentoo :
| Code: | mv /var/paludis/repositories/gentoo /var/paludis/repositories/gentoo-old
mkdir /var/paludis/repositories/gentoo |
Faire un hook qui va recréer le squashfs à la prochaine mise à jour
Créer le répertoire /etc/paludis/hooks/sync_all_post :
| Code: | | mkdir -p /etc/paludis/hooks/sync_all_post |
créer un fichier update_squahfs.bash :
| Code: | #!/bin/bash
source ${PALUDIS_EBUILD_DIR}/echo_functions.bash
einfo "Updating squashfs"
mksquashfs /var/paludis/repositories/gentoo /var/paludis/repositories/gentoo-new.sqfs >/dev/null
einfo "Remounting squashfs"
umount /var/paludis/repositories/gentoo
umount /var/paludis/repositories/gentoo
mv /var/paludis/repositories/gentoo-new.sqfs /var/paludis/repositories/gentoo.sqfs
mount /var/paludis/repositories/gentoo
mount -t unionfs -o dirs=/dev/shm/gentoo=rw:/var/paludis/repositories/gentoo=ro unionfs /var/paludis/repositories/gentoo
|
Charger les modules au démarrage :
| Code: | echo squashfs >> /etc/modules.autoload.d/kernel-2.6
echo unionfs >> /etc/modules.autoload.d/kernel-2.6
echo loop >> /etc/modules.autoload.d/kernel-2.6 |
Renseigner la fstab :
| Code: | | echo "/var/paludis/repositories/gentoo.sqfs /var/paludis/repositories/gentoo squashfs loop 0 0" >> /etc/fstab |
Rajouter le montage unionfs au démarrage :
| Code: | echo "mkdir -p /dev/shm/paludis" >> /etc/conf.d/local.start
echo "mount -t unionfs -o dirs=/dev/shm/gentoo=rw:/var/paludis/repositories/gentoo=ro unionfs /var/paludis/repositories/gentoo" >> /dev/local.start |
ajouter local au démarrage :
| Code: | | rc-update add local default |
tout utiliser :
| Code: | mount /var/paludis/repositories/gentoo
/etc/init.d/local start
|
Désormais chaques synchronisation fera une mise à jour de l'archive.
Mon arborescence gentoo est passé de 573Mo à 41Mo
TODO: rendre le hook plus propre, faire en sorte qu'il ne se déclenche que pour le répertoire gentoo. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|