Depuis quelques semaines je passe du temps sous RHEL/CentOS pour Ulteo, et j’ai commencé à bosser sur des rpms pour notre OVD. Utiliser une machine virtuelle n’est pas l’idéal (c’est long à démarrer), et après tout, un Linux est un Linux, ça tourne dans un chroot.
Je me suis donc construit un chroot CentOS 5, disponible pour les users grâce à dchroot. Ca s’installe en 10 minutes, alors pourquoi s’en priver ?
# Préparation de l'environnement su export CHROOT=/var/chroot/centos # Construction du système de base mkdir -p $CHROOT apt-get install rinse rinse --distribution centos-5 --directory $CHROOT # Fstab cat >> /etc/fstab <<EOF # centos chroot proc $CHROOT/proc proc defaults 0 0 /home $CHROOT /home none bind 0 0 /tmp $CHROOT/tmp none bind 0 0 /dev $CHROOT/dev none bind 0 0 devpts $CHROOT/dev/pts devpts defaults 0 0 EOF mount -a # Dchroot: apt-get install dchroot echo "centos $CHROOT" > /etc/dchroot.conf echo CentOS > $CHROOT/etc/debian_chroot # le bashrc de debian affichera un joli prompt chroot $CHROOT passwd # mot de passe root chroot $CHROOT useradd -u uid_user user # pour éviter les problèmes de permission chroot $CHROOT passwd user
C’est maintenant possible de tester :
exit dchroot -c centos # en tant qu'user
Vous devriez voir un prompt du style :
(CentOS)gauvain@zero:~$
J’ai eu quelques soucis avec urxvt, mais il existe un workaround :
cat >> ~/.bashrc <<EOF # urxvt terminal in centos if [ "$TERM" = "rxvt-unicode" ] && grep -qi centos /etc/issue; then TERM="rxvt" export TERM fi EOF
Après avoir installé les paquets nécessaire dans le chroot, un simple wrapper (/usr/local/bin/rpmbuild par exemple) pour rpmbuild me permet de lancer des builds de rpms de manière transparente :
#!/bin/sh dchroot -c centos -d "rpmbuild $@"