slitaz-doc-wiki-data annotate pages/fr/guides/chroot.txt @ rev 142
Updated en:handbook:start to 4.0
author | Christian Mesh meshca@clarkson.edu |
---|---|
date | Mon Mar 19 22:02:10 2012 +0000 (2012-03-19) |
parents | |
children |
rev | line source |
---|---|
slaxemulator@4 | 1 ====== Chroot ======= |
slaxemulator@4 | 2 |
slaxemulator@4 | 3 Ce guide explique comment installer un chroot pour cuisiner des paquets dans un environnement séparé. Le chroot peut être construit sur un périphérique USB ou un disque dur pour économiser la mémoire vive durant une session live. Il y a aussi un script qui désinstalle tous les paquets installés pendant la cuisson à la sortie pour conserver un chroot léger et vérifier les dépendances de compilation. |
slaxemulator@4 | 4 |
slaxemulator@4 | 5 ===== Avec Tazdev ===== |
slaxemulator@4 | 6 Avec le temps les developeurs SliTaz ont créé des outils permettant l'automatisation de diverses tâches. Le paquet slitaz-dev-tools fournit l'utilitaire tazdev et son fichier de configuration /etc/slitaz/tazdev.conf, il permet ensuite de créer un chroot et de l'utiliser: |
slaxemulator@4 | 7 |
slaxemulator@4 | 8 <code> |
slaxemulator@4 | 9 # tazpkg get-install slitaz-dev-tools |
slaxemulator@4 | 10 # tazdev gen-chroot |
slaxemulator@4 | 11 # tazdev chroot |
slaxemulator@4 | 12 </code> |
slaxemulator@4 | 13 |
slaxemulator@4 | 14 Par défaut le chroot est créé dans /home/slitaz/cooking/chroot avec une slitaz-base. Pour plus d'infos et les commandes disponibles vous pouvez utiliser 'tazdev usage' et jeter un oeil au fichier de configuration. |
slaxemulator@4 | 15 |
slaxemulator@4 | 16 ===== Créer un chroot à la main ===== |
slaxemulator@4 | 17 <code>mkdir /home/chroot |
slaxemulator@4 | 18 # Vous pouvez monter un périphérique sur /home/chroot |
slaxemulator@4 | 19 # avec mountbox ou mount |
slaxemulator@4 | 20 tazpkg get-install busybox --root="/home/chroot" |
slaxemulator@4 | 21 echo "No" | tazpkg get-install bash --root="/home/chroot" |
slaxemulator@4 | 22 tazpkg get-install slitaz-toolchain --root="/home/chroot" |
slaxemulator@4 | 23 tazpkg get-install tazwok --root="/home/chroot" |
slaxemulator@4 | 24 tazpkg get-install tazpkg --root="/home/chroot" |
slaxemulator@4 | 25 tazpkg get-install lzma --root="/home/chroot" |
slaxemulator@4 | 26 mkdir /home/chroot/home/slitaz</code> |
slaxemulator@4 | 27 |
slaxemulator@4 | 28 Note : Vous pouvez conserver ces lignes dans un script si nécessaire. Ajoutez #!/bin/sh en première ligne et rendez-le executable avec : |
slaxemulator@4 | 29 <code>chmod +x script_file</code> |
slaxemulator@4 | 30 |
slaxemulator@4 | 31 ===== Ajouter un script pour automatiser des actions ===== |
slaxemulator@4 | 32 |
slaxemulator@4 | 33 <code>cat > /home/chroot/chroot_script.sh << "EOF" |
slaxemulator@4 | 34 #!/bin/sh |
slaxemulator@4 | 35 /bin/sh --login |
slaxemulator@4 | 36 for pkg in $(cat /var/log/tazpkg.log | grep -v Removed | sed 's/\(.*\)\(- Installed - \)\(.*\)\( (.*\)/\3/'); do |
slaxemulator@4 | 37 echo "y" | tazpkg remove $pkg |
slaxemulator@4 | 38 done |
slaxemulator@4 | 39 rm /var/log/tazpkg.log |
slaxemulator@4 | 40 |
slaxemulator@4 | 41 EOF |
slaxemulator@4 | 42 chmod +x "/home/chroot/chroot_script.sh"</code> |
slaxemulator@4 | 43 |
slaxemulator@4 | 44 Note: /bin/sh --login vous connecte au chroot. Les commandes suivantes désinstallent automatiquement les paquets ajoutés pendant la cuisson à la sortie. Vous pouvez modifier ce fichier pour exécuter différentes actions au moment de l'entrée ou de la sortie du chroot. |
slaxemulator@4 | 45 |
slaxemulator@4 | 46 ===== Ajouter un script pour monter ou démonter le chroot ===== |
slaxemulator@4 | 47 |
slaxemulator@4 | 48 <code>cat > /usr/bin/tazchroot << "EOF" |
slaxemulator@4 | 49 #!/bin/sh |
slaxemulator@4 | 50 cat /etc/resolv.conf > /home/chroot/etc/resolv.conf |
slaxemulator@4 | 51 if [ ! -d "/home/chroot/proc/1" ]; then |
slaxemulator@4 | 52 echo "Monte le système de fichier virtuel..." |
slaxemulator@4 | 53 mount -t proc proc /home/chroot/proc |
slaxemulator@4 | 54 mount -t sysfs sysfs /home/chroot/sys |
slaxemulator@4 | 55 mount -t devpts devpts /home/chroot/dev/pts |
slaxemulator@4 | 56 mount -t tmpfs shm /home/chroot/dev/shm |
slaxemulator@4 | 57 mount /home/slitaz /home/chroot/home/slitaz |
slaxemulator@4 | 58 chroot /home/chroot ./chroot_script.sh |
slaxemulator@4 | 59 until [ "$ps" = "2" ]; do |
slaxemulator@4 | 60 echo "Attends la fin de tous les autres processus du chroot" |
slaxemulator@4 | 61 ps=$(ps | grep `basename $0` | grep -v grep | grep -v basename | wc -l) |
slaxemulator@4 | 62 sleep 1 |
slaxemulator@4 | 63 done |
slaxemulator@4 | 64 umount /home/chroot/home/slitaz |
slaxemulator@4 | 65 umount /home/chroot/dev/shm |
slaxemulator@4 | 66 umount /home/chroot/dev/pts |
slaxemulator@4 | 67 umount /home/chroot/sys |
slaxemulator@4 | 68 umount /home/chroot/proc |
slaxemulator@4 | 69 else |
slaxemulator@4 | 70 echo "Le chroot est déjà monté" |
slaxemulator@4 | 71 fi |
slaxemulator@4 | 72 EOF |
slaxemulator@4 | 73 chmod +x /usr/bin/tazchroot</code> |
slaxemulator@4 | 74 |
slaxemulator@4 | 75 Note : Ce script monte /home/slitaz dans votre chroot, vous pouvez donc utiliser tazwok comme si vous étiez dans votre environnement normal |