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 package
  • grep scripts/ sélectionne les scripts
  • awk -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...