Dans certain cas nous aimerions installer un service ou une application sans avoir d'incidence sur les services annexes d'une machine. On peut vouloir tester un outil, devoir utiliser une application sur une version particulière de notre distribution ou encore, dans notre cas, installer un serveur MySQL sur une machine Debian sur laquelle nous ne voulons pas influer.
Pour ces cas - et bien d'autres encore - une solution existe : les chroots. Le chroot est un espace isolé du reste de l'environnement et possède ses propres bibliothèques, outils, applications, etc. Il peut communiquer avec le reste du monde, la machine hôte, etc. Mais il ne peut pas influer sur autre chose que lui-même.
Je vais donc vous décrire rapidement les commandes effectuées pour créer un chroot avec MySQL dedans. Pour des informations complémentaires je laisse les liens des tutoriels suivis dans le chapitre Liens de ce même article.
Voici donc les étapes successives (faites sur une Debian Squeeze) :
Et les différentes commandes :
su - root apt-get install debootstrap mkdir -p /srv/chroot/squeeze CHROOT=/srv/chroot/squeeze debootstrap --arch i386 squeeze $CHROOT http://ftp.fr.debian.org/debian/ mount -t proc proc $CHROOT/proc mount -t devpts devpts $CHROOT/dev/pts chroot $CHROOT /bin/bash --login apt-get update apt-get install locales nano dpkg-reconfigure locales echo "(CHROOT)" > /etc/debian_chroot exit chroot $CHROOT /bin/bash --login apt-get install mysql-server mysql-client php5-mysql nano /etc/mysql/my.cnf
On édite les lignes suivantes :
bind-address = localhost
puis on redémarre le serveur MySQL :
service mysql restart
Ensuite on quitte le chroot et on édite le fichier de la machine hôte :
exit nano /etc/mysql/my.cnf
On édite les lignes suivantes :
[client]
port = 3306
socket = /srv/chroot/squeeze/var/run/mysqld/mysqld.sock
puis plus loin dans le même fichier :
bind-address = localhost
et on ajoute la ligne suivante :
chroot = /srv/chroot/squeeze
Vous voilà désormais avec un chroot contenant MySQL !
Créer un chroot n'est finalement pas compliqué. L'utiliser et installer des applications non plus. MySQL reste cependant particulier car il faut connaître l'option chroot du fichier de configuration. On rencontre aussi quelques difficultés avec PhpMyAdmin, mais ils peuvent être résolus via un tutoriel de l'accès PhpMyAdmin à un chroot MySQL sur le Quicky Blanko.