Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HOWTO] Paludis et squashfs
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Bapt
Veteran
Veteran


Joined: 14 Apr 2003
Posts: 1152
Location: Paris

PostPosted: Mon Jan 08, 2007 5:58 pm    Post subject: [HOWTO] Paludis et squashfs Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
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