Petit guide du d�veloppement multi-distributions Traduction fran�aise du Development for Multiple Linux Distributions mini-HOWTO Ed Hill <ed CHEZ eh3 POINT com> Adaptation fran�aise : Joan Goutte Relecture de la version fran�aise : Dorian Musso, Simon Depiets Pr�paration de la publication de la v.f. : Jean-Philippe Gu�rard Version : 0.9.1.fr.1.0 2004-03-11 +------------------------------------------------------------------------+ | Historique des versions | |------------------------------------------------------------------------| | Version 0.9.1.fr.1.0 | 2004-03-11 | JG, DM, SD, JPG | |------------------------------------------------------------------------| | Traduction fran�aise | |------------------------------------------------------------------------| | Version 0.9.1 | 2002-08-14 | EH3 | |------------------------------------------------------------------------| | Petite mise � jour pour l'utilisation de X11 (sockets). Small update | | for using X11 (sockets). | |------------------------------------------------------------------------| | Version 0.9 | 2001-12-03 | EH3 | |------------------------------------------------------------------------| | Version initiale. Initial version. | +------------------------------------------------------------------------+ R�sum� Ce document d�crit un bricolage rapide destin� � faciliter le d�veloppement et les tests de programmes tournant dans l'espace utilisateurs pour diff�rentes distributions Linux. -------------------------------------------------------------------------- Table des mati�res 1. Introduction 1.1. Droits d'utilisation 1.2. Commentaires et corrections 2. Installation 3. Utiliser les distributions secondaires 4. Remerciements 1. Introduction Lors du d�veloppement d'une application, il est parfois n�cessaire de programmer ou de tester des programmes sur diff�rentes distributions Linux. Ce petit guide trace les grandes lignes d'une utilisation �l�gante de chroot qui peut, dans bien des cas, �viter de red�marrer sous diff�rentes distribution Linux pour r�aliser des tests ou des d�veloppements. En quelques mots, l'astuce consiste � placer tous les fichiers d'une certaine distribution dans un simple r�pertoire et de faire un chroot^[1] vers l'int�rieur de ce r�pertoire. Vous vous retrouverez ainsi dans un environnement d'ex�cution restreint qui vous permettra de d�velopper, tester ou rechercher les erreurs de votre programme dans le contexte qui vous int�resse. Cette m�thode fonctionnera � condition que : 1. la version du noyau de la distribution � principale � (ou � primaire �) que vous ex�cutez soit (un minimum) compatible avec la distribution � secondaire �, c'est-�-dire la distribution ex�cut�e en environnement restreint ; 2. votre application tourne principalement dans l'espace utilisateur (i. e. : ne soit pas un module du noyau) et ne d�pende pas intimement d'un dispositif particulier du noyau (i. e. : du comportement de /proc). 1.1. Droits d'utilisation Copyright � 2001 Ed Hill III. Copyright � 2004 Joan Goutte, Dorian Musso, Simon Depiets et Jean-Philippe Gu�rard pour la version fran�aise. Vous pouvez redistribuer et modifier ce document selon les termes de la Licence de documentation libre GNU (FDL) (version 1.1 ou toute version ult�rieure publi�e par la Free Software Foundation), sans section invariante, ni texte de premi�re ou de quatri�me de couverture. Une copie de cette licence est accessible sur http://www.gnu.org/copyleft/fdl.html [http://www.gnu.org/copyleft/fdl.html]. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html [http://www.gnu.org/copyleft/fdl.html]. 1.2. Commentaires et corrections Ce document a �t� traduit dans le cadre du projet traduc.org [http://www.traduc.org]. N'h�sitez pas � faire parvenir vos commentaires, corrections et suggestions d'am�liorations � <commentaires CHEZ traduc POINT org>. 2. Installation Nous supposerons que vous avez d�j� : 1. une distribution Linux � principale � (ou � primaire �) install�e avec un noyau 2.4 ou sup�rieur ; 2. une partition libre de 2 � 4 Go ; 3. suffisamment d'espace disque pour l'installation des distributions secondaires (et pour les travaux de d�veloppement et de test en d�coulant). Partant de ces hypoth�ses, voici les grandes lignes de l'une des solutions permettant d'installer plusieurs distributions secondaires qui seront utilis�es pour des d�veloppements, des tests, ou d'autres choses : 1. Premi�rement, cr�ez ou allouez une partition non utilis�e de votre disque dur qui soit assez grande (2 � 4 Go seront en g�n�ral suffisants) pour faire une installation de base de l'une des distributions Linux secondaires. 2. Installez la distribution secondaire sur cette partition mais ne l'ajoutez pas � votre configuration de d�marrage. Notez que cette installation a seulement besoin d'inclure les paquets que votre application (ou votre essai) exige. Par exemple, il est possible que vous puissiez vous passez d'installer des applications tr�s gourmandes en espaces telles que le serveur X. 3. Red�marrez votre distribution Linux principale et montez la partition contenant la distribution fra�chement install�e. Copiez (de pr�f�rence en utilisant tar -cp ou une autre m�thode conservant les droits) tous les fichiers de la distribution secondaire vers une destination telle que /opt/distributions/NOM_DE_LA_DISTRIBUTION. 4. R�p�tez les �tapes 2 et 3 pour toutes les distributions suppl�mentaires que vous souhaitez installer. Au bout du compte, vous devriez obtenir une structure de r�pertoires ressemblant � celle-ci : /opt/distributions/redhat_6.2/ suse_7.2/ mandrake_8.1/ debian-potato/ slackware_8.0/ o� chaque r�pertoire contient la totalit� des fichiers issus de l'installation de chaque distribution. 3. Utiliser les distributions secondaires Une fois les distributions secondaires install�es, les �tapes � suivre pour les utiliser sont : 1. Il est important que la distribution Linux principale utilise un noyau Linux 2.4 ou plus r�cent, afin de profiter des possibilit�s de points de montage multiples qu'offrent ces noyaux. Pour de nombreuses t�ches, les syst�mes de fichiers /proc et /tmp devront �tre mont�s � nouveau dans la distribution secondaire en utilisant : mount --bind /proc /opt/distributions/redhat_6.2/proc mount --bind /tmp /opt/distributions/redhat_6.2/tmp 2. Aussi, il peut �tre utile de r�aliser un nouveau montage (au lieu de la copier) de l'arborescence des sources de la premi�re distribution dans la distribution secondaire : mount --bind /home/UTILISATEUR/src/PROJET \ /opt/distributions/redhat_6.2/home/UTILISATEUR/src/PROJET 3. Connectez-vous sous le compte root et faites : xhost +localhost chroot /opt/distributions/redhat_6.2 /bin/bash pour obtenir un interpr�teur de commandes (shell) dans l'une des distributions secondaires. Notez que la commande xhost n'est utile que si vous avez l'intention d'utiliser des applications X. 4. Enfin (si n�cessaire) cr�ez un utilisateur dans l'environnement restreint. Vous pouvez maintenant d�velopper, construire ou tester votre application dans cette distribution Linux � s�par�e � ! Notez que vous aurez �galement � d�finir la variable d'environnement DISPLAY si vous d�sirez utiliser des applications X. Bien ! Vous disposez maintenant d'un interpr�teur de commandes que vous pouvez, � toutes fins utiles, ex�cuter sous la distribution Linux secondaire de votre choix. 4. Remerciements Je ne suis pas � l'origine des id�es pr�sent�es dans ce petit guide. Elles ont �t� recueillies dans des messages de Ben Reed (de OpenNMS [http://www.opennms.org/]) pour l'une des listes de discussions du groupe d'utilisateurs de Linux TriLUG [http://www.trilug.org/]. J'ai trouv� que ces informations pouvaient �tre tr�s utiles et j'ai voulu documenter ces id�es pour les autres. -------------- ^[1] La commande chroot permet d'ex�cuter une commande ou un interpr�teur de commandes en utilisant un r�pertoire racine diff�rent. On parle d'une commande ex�cut�e dans un environnement d'ex�cution restreint.