Étape 1 : Installation des premiers éléments
- Installer les paquets
dchroot et
debootstrap à l'aide de synaptic.
- En console :
sudo mkdir /chroot/
sudo gedit /etc/dchroot.conf
Ajouter la ligne suivante à la fin :
breezy32 /chroot
Remarque : Je suppose que 'breezy32' n'est qu'un nom que vous pourriez changer, selon vos besoins et vos envies, en 'Breezy', 'Instable', 'test'... Je pense que c'est surtout utile si vous manipulez plusieurs répertoire chroot (oui, oui, c'est possible! Mais est-ce vraiment nécessaire? :rolleyes: )
sudo debootstrap --arch i386 breezy /chroot/
http://archive.ubuntu.com/ubuntu
Remarque : C'est ici qu'il faudra indiquer la version que vous voulez installer. Cette commande va aller chercher tous les paquets nécessaires sur le net et les installer. Vous avez largement le temps d'aller prendre un café 🙂
sudo chroot /chroot/
dpkg-reconfigure locales
Remarque : J'ai eu pour ma part quelques problèmes ici. J'ai trouvé plus tard la solution : remplacer la ligne ci-dessus par les deux lignes suivantes dans une nouvelle console :
cp /etc/locale.gen /chroot/etc/locale.gen
locale-gen
Étape 2 : Configuration d'apt
- Dans une nouvelle console :
sudo gedit /chroot/etc/apt/sources.list
Ajouter les lignes suivantes :
deb http://archive.ubuntu.com/ubuntu breezy main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu breezy-security main restricted universe multiverse
Remarque 1 : Là encore, attention à la version que vous voulez installer...
Remarque : Personnellement j'ai du mal à faire fonctionner correctement synaptic qui plante au moment d'installer un nouveau paquet. mais
apt-get install en console fonctionne très bien. 🙂
Étape 3 : Premières actions dans votre environnement 'chrooté'
- Passez dans votre environnement 'chrooté' :
sudo chroot /chroot
- Aucune différence de visible, mais maintenant, la commande 'cd /' vous emmènera en fait dans '/chroot'. Tout se passe comme si '/chroot' était votre répertoire racine. Mais uniquement dans la console, hein! Pas en dehors!... Les programmes lancés, comme par exemple apt, sont également ceux de l'environnement 'chrooté'.
apt-get update
Remarque : Des Warnings (W) peuvent apparaître ici. Ignorez-les impitoyablement.
apt-get upgrade
Étape 4 : On l'on découvre qu'on aimerait bien que tous les paramétrages soient aussi simples que celui d'un chroot...
- Dans une autre console :
sudo cp /etc/passwd /chroot/etc/
sudo cp /etc/shadow /chroot/etc/
sudo cp /etc/group /chroot/etc/
sudo cp /etc/sudoers /chroot/etc/
sudo cp /etc/hosts /chroot/etc/
sudo gedit /etc/fstab
Ajouter à la fin du fichier :
/home /chroot/home none bind 0 0
/tmp /chroot/tmp none bind 0 0
/proc /chroot/proc proc defaults 0 0
/media/cdrom0 /chroot/media/cdrom0 none bind 0 0
Remarque : Vous pouvez aussi monter de la même manière d'autres partitions dont vous aurez besoin (une partition fat32 par exemple), à l'aide de l'option bind.
mkdir /chroot/media/cdrom0
Remarque : Pensez à créer tous les répertoires que vous voulez monter...
sudo mount -a
sudo gedit /usr/local/bin/do_dchroot
Recopier les lignes suivantes :
#!/bin/sh
xhost + local:
temp=`echo $0 | sed 's|^.*/||'`
command=`echo $temp | sed 's/32/ /'`
for arg; do
arg=`echo $arg | sed -e 's/ /\\ /g'`
args=`echo $args $arg`
done
/usr/bin/dchroot -d "$command $args"
Remarques : Selon la configuration de votre clavier, les ` ne seront peut-être pas évidents à trouver. Mais le copier-coller marche très bien 😉 Tout ce que je peux vous donner comme explication sur ces belles lignes, c'est qu'elles permettent de faire le lien (à l'aide d'un autre fichier, cf plus loin) entre une commande passée dans votre environnement habituel et le programme situé dans le chroot.
sudo chmod 755 /usr/local/bin/do_dchroot
Étape 5 : Où vous installez votre premier programme 'chrooté'
- Dans une nouvelle console :
dchroot -d
sudo apt-get install synaptic
exit
Remarque : J'obtiens parfois des warnings après cette commande, parfois pas. Mais dans tous les cas, ça semble fonctionner...
sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32
Remarque : C'est ce lien qui va permettre, avec l'aide du fichier do_dchroot, de lancer les programmes du chroot depuis votre console habituelle.
sudo synaptic32