3. Préliminaires

3.1. Installation de rpm

La première étape est de monter l'environnement chrooté, avec un shell et rpm fonctionnels. Pour rpm, vous pouvez prendre celui de Debian avec apt-get install rpm, ou vous le procurer par n'importe quel autre moyen, y compris le recompiler à partir de ses sources. Le répertoire racine de l'environnement chrooté sera ${CHROOT_ENV} dans tout le reste du document. Pour tester que tout fonctionne:

	# chroot ${CHROOT_ENV} /bin/bash
	# rpm --version
	RPM version 4.0.3
	

Tout ce qui suit se fait dans l'environnement chrooté, sauf précision de ma part. Il faut initialiser la base rpm avec ceci:

	# mkdir -p /var/lib/rpm
	# rpm --initdb
	

3.2. Récupération des paquets Mandrake

Ensuite, faites le nécessaire pour disposer des paquets rpm dans l'environnement chrooté. L'ancienne méthode, avant les noyaux 2.4.x, était, par exemple, d'exporter via NFS le répertoire contenant ces paquets, puis en le montant:

	# cat /etc/exports
	/mnt/mirrors/Mandrake localhost(ro)
	

Dans l'environnement chrooté:

	# mkdir -p /mnt/mdk
	# mount -t nfs localhost:/mnt/mirrors/Mandrake/9.1/i586/Mandrake /mnt/mdk
	

Depuis que le noyau 2.4.0 est sorti, nous avons l'option bind de mount qui nous évite de passer par le réseau et le NFS. Cette option permet de monter un répertoire dans un autre répertoire. Sur une mandrake 9.1, cette fonctionnalité est documentée dans la page de manuel anglaise, mais n'a pas été traduite pour l'instant. La manipulation est à faire dans la distribution de base Debian et non pas dans l'environnement chrooté:

	# mkdir -p ${CHROOT_ENV}/mnt/mdk
	# mount -o bind /mnt/mirrors/Mandrake/9.1/i586/Mandrake ${CHROOT_ENV}/mnt/mdk
	

Je vous conseille de préférer cette méthode, non seulement parce qu'on évite de passer par le réseau, mais parce que d'une part on a un système de fichiers dans son format original et non pas vu à travers la couche du système de fichiers NFS, et d'autre part parce que tout ce qui est monté se fait depuis la distribution de base Debian et est ainsi transparent dans la distribution Mandrake. Essayez la première methode, puis regardez le contenu du fichier /etc/mtab dans la distribution Mandrake et vous verrez ce que je veux dire.

création est mise à disposition sous un contrat Creative Commons