Notre environnement standardisé va s'appuyer sur chroot. Pour l'initier, utilisons le package debootstrap :
sudo apt-get install debootstrap
Il crée des arborescences Debian ou Ubuntu. Pour voir quelles versions sont disponibles :
dpkg -L debootstrap | grep scripts/ | awk -F / '{print $NF}'
dpkg -L
liste tous les fichiers du packagegrep scripts/
sélectionne les scriptsawk -F / '{print $NF}'
sélectionne leur nom
J'obtiens les versions disponibles à la fois pour debian (potato, sarge...) et pour ubuntu (lucid, maverick...) :
potato sarge ... lucid maverick
Ensuite, on exécute la commande en tant que root, par exemple pour créer l'arborescence d'une lucid :
sudo debootstrap lucid root_dir
root_dir représente la racine du chroot. En quelques minutes, une arborescence de 260 Mo a été crée. Un ls dans root_dir/ nous le confirme :
root_dir$ ls
bin boot dev etc home lib media mnt opt proc root sbin selinux srv sys tmp usr var
On peut dès maintenant se connecter par
sudo chroot root_dir/
et réussir à contacter barreverte.fr (ping barreverte.fr)
Toujours connecté au chroot (matérialisé dans la suite par l'invite 'chroot'), on créé un user pour représenter le projet (disons barreverte) :
'chroot'$ adduser barreverte
et on peut maintenant se connecter en tant que barreverte :
'chroot'$ su barreverte
Mais cette arborescence a besoin d'être rattachée à la machine sur laquelle elle va s'exécuter, ce qui fera l'objet d'un prochain billet...