Installez
Transcription
Installez
Ceci est un extrait électronique d'une publication de Diamond Editions : http://www.ed-diamond.com Ce fichier ne peut être distribué que sur le CDROM offert accompagnant le numéro 100 de GNU/Linux Magazine France. La reproduction totale ou partielle des articles publiés dans Linux Magazine France et présents sur ce CDROM est interdite sans accord écrit de la société Diamond Editions. Retrouvez sur le site tous les anciens numéros en vente par correspondance ainsi que les tarifs d'abonnement. Pour vous tenir au courant de l'actualité du magazine, visitez : http://www.gnulinuxmag.com Ainsi que : http://www.linux-pratique.com et http://www.miscmag.com I Installez une Mandrake dans une Debian nstaller une Mandrake sur une Le répertoire racine de Debian ne présente pas un l’environnement chrooté sera ${CHROOT_ENV} dans tout le reste du grand intérêt au premier Nous avons vu document. Pour tester que tout abord, mais voici tout comment monter un fonctionne : de même quelques environnement chrooté raisons de le faire. dans l’article précédent. # chroot ${CHROOT_ENV} /bin/bash Voici un cas pratique qui, sous déjà, rien que pour le sport, cela # rpm —version forme d’idée, n’est rien mérite de le faire ; RPM version 4.0.3 d’autre qu’un énorme troll, et puis, parlez-en à vos amis pour mais qui une fois mis en Tout ce qui suit se fait dans tester leurs capacités de trolleurs ; place, se révèle très l’environnement chrooté, sauf précision si vous disposez d’un nombre intéressant. de ma part. Il faut initialiser la base rpm avec limité de machines, vous pouvez ainsi ceci : avoir deux distributions qui tournent # mkdir -p /var/lib/rpm en même temps, contrairement au double démarrage Debian/Mandrake # rpm —initdb proposé par lilo ; Vous comprendrez ainsi un peu mieux comment fonctionne le système de paquets RPM ; Vous pouvez aussi avoir un système propre pour développer dessus ; La sauvegarde et la restauration du système est extrêmement facile ; Vous verrez les bases d’une Mandrake. Pré-requis Vous disposez d’une machine avec une distribution installée et fonctionnelle. Cet article se base sur une Debian Woody. Mais je ne vois aucun inconvénient à le faire sur une RedHat, une autre Mandrake, une Slackware, ou d’autres distributions encore ! Vous savez aussi faire un chroot quoi que cela est assez simple à réaliser pour un système basique. Vous disposez d’un miroir local des paquets de la distribution Mandrake (vous pouvez exporter le CD via NFS si cela vous chante). 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 Préliminaires # mount -o bind /mnt/mirrors/Mandrake/9.1/i586/Mandrake ${CHROOT_ENV}/mnt/mdk 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. 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 Installation de RPM 54 Récupération des paquets Mandrake LM 54 Installation de la base Cette étape est l’étape la plus délicate, mais si vous faites des erreurs ici, vous ne perdrez pas trop de temps à vous corriger. Installation initiale Le but est d’installer le paquet basesystem et ses dépendances. urpmi basesystem marcherait à merveille pour ceux qui connaissent Mandrake. Mais urpmi n’est pas installé, et on va s’en passer tant que la base n’est pas installée. L’idée est donc de taper une longue ligne de commande du style rpm -Uvh basesystem-9.0-3mdk.i586.rpm filesystem2.1.3-8mdk.noarch.rpm console-tools-0.2.3-42mdk.i586.rpm [...] grep-2.5-7mdk.i586.rpm. Démarrez cette ligne de commande, validez. rpm vous affichera les dépendances manquantes. Ajoutez les paquets au fur et à mesure, validez au fur et à mesure, et à force, vous devrez faire augmenter puis diminuer le nombre de dépendances manquantes, jusqu’à arriver à ce que rpm fonctionne. Lors de l’installation de ma Mandrake-9.1, j’ai compté 103 paquets (en espérant ne pas m’être trompé en comptant). Cette installation peut générer des erreurs, ce n’est pas trop grave, tant que les fichiers sont installés. Il s’agit ici d’installer les fichiers. Nous n’avons que faire de la base des dépendances pour l’instant. Gardez la liste de ces paquets bien au chaud : elle servira encore. Remplissage de la base de données rpm Cela nous oblige à insérer dans la base les rpm qui sont déjà installés. Pour chaque RPM, voici ce que vous pouvez faire : # rpm -Uvh —force —replacefiles —nodeps basesystem-9.0-3mdk.i586.rpm # rpm -Uvh —force —replacefiles —nodeps filesystem-2.1.3-8mdk.noarch.rpm ... et ainsi de suite pour tous les paquets qui ont déjà été installés. Mais surtout pas d’autres. Lorsque c’est fait, rpm -qa vous permet de valider que cela a bien marché. A la moindre erreur, n’hésitez pas à refaire ce que vous venez de faire. Il n’y a a priori aucun mal à cela jusqu’ici. Nettoyage Il est probable que des fichiers *rpmnew se soient installés. Pour les trouver : find / -name “*rpmnew”. Il est préférable de les garder et de jeter les anciens : # for i in `find / -name ‘*rpmnew’ | sed -e ‘s/.rpmnew$//’`; do mv $i.rpmnew $i; done urpmi Bravo ! Vous avez installé la base de votre Mandrake. Maintenant, il s’agit d’installer les logiciels que vous désirez utiliser. Cependant, pour cela, rien de tel qu’urpmi. Pour installer urpmi, faites comme pour n’importe quel autre logiciel, comme au bon vieux temps où Debian affichait sa supériorité avec son apt-get qui n’existait pas ailleurs (amis de Debian : la force de Debian ne se trouve pas limitée à son apt-get) : rpm -Uvh urpmi-4.2-34.1mdk.i586.rpm. Ici encore, des dépendances devraient manquer. Installezles une par une, avec rpm et surtout, sans les options —force, —replacefiles ni —nodeps. Il y en a une dizaine, un peu moins, même. Suivant la distribution qui vous sert de base, ou plutôt la version de RPM que vous avez utilisée jusqu’ici, il est fort probable qu’il y ait une différence de versions, rendant le RPM que l’on a utilisé incompatible avec celui de la Mandrake que l’on installe. Sur une Debian, il y a effectivement incompatibilité. Rien de grave à cela. Vérifiez juste que vous utilisez maintenant le bon rpm de la Mandrake, celui que vous venez juste d’installer (pour une Mandrake-9.1) : Lorsqu’urpmi est installé, il n’est pas encore utilisable. Il faut lui ajouter des sources. # rpm —version Si vous avez l’intention d’utiliser un miroir sur le Web, je ne saurais trop vous suggérer d’utiliser l’excellente page http://plf.zarb.org/~nanardon/ d’Olivier Thauvin. Cette page vous permet, en quelques clics, de générer la ligne de commande à taper pour ajouter un médium. RPM version 4.0.4 Le numéro de version a changé, donc tout va bien. Vous pouvez d’ailleurs supprimer le binaire rpm qui vous a servi s’il n’a pas été écrasé. Sur une Debian, on l’avait dans /usr/bin, et sur la Mandrake il est dans /bin, donc on peut supprimer celui de /usr/bin. Le changement de version peut poser problème avec la base de données rpm, donc on va la convertir. Le plus simple, le plus facile et peut-être bien le plus propre est de repartir à zéro : # # # # cd /var/lib rm -rf rpm mkdir rpm rpm —initdb Mandrake sur une Debian transparent dans la distribution Mandrake. Essayez la première méthode, puis regardez le contenu du fichier /etc/mtab dans la distribution Mandrake et vous verrez ce que je veux dire. La syntaxe est la suivante : # urpmi.addmedia <nom de la source> <lieu> with <position relative de hdlist> Dans notre cas, voici ce que cela donne : # urpmi.addmedia main file:///mnt/mdk/RPMS with ../base/hdlist.cz Validez, puis copiez/collez la ligne de commande générée dans votre shell, et voilà. Notez au passage que c’est urpmi.setup qui tourne derrière cette page, et que vous pouvez l’installer par la suite sur votre Mandrake, et utiliser son interface en GTK+. Si vous êtes arrivés jusqu’ici, vous avez gagné : vous avez une distribution Mandrake installée sur votre distribution. Félicitations ! Il ne vous reste plus qu’à utiliser urpmi pour Octobre 2003 55 installer le reste, en particulier rpmdrake si vous préférez la méthode clic clic pour installer vos paquets. Remarques sur le système Finalisation de l’installation La première chose à faire quand vous finissez d’installer une distribution est de créer un utilisateur. Sur votre Mandkrake, /etc/passwd n’a rien à voir avec le /etc/passwd de la distribution Debian. Vous avez donc un fichier /etc/passwd aussi vierge qu’il l’est si vous installez une Mandrake par la méthode normale. Ajoutez donc un utilisateur avec adduser ou userdrake suivant ce qui vous chante. Personnellement, j’ai homogénéisé les uid et gid des utilisateurs sur chacune des distributions. Cela facilite les échanges par la suite. Utilisez un serveur sshd Pour rendre votre double système convivial, et ne plus avoir besoin de passer par un chroot et par le compte root, installez un serveur sshd. Ainsi, vous n’aurez plus qu’à vous connecter en tant qu’utilisateur autorisé, et vous serez sur votre Mandrake. Etape 1 : Installez sshd. urpmi sshd le fait pour vous très bien. Evitez de le lancer par la méthode classique : il entrerait en conflit avec un serveur sshd éventuellement déjà lancé sur l’autre distribution ! Etape 2 : Vérifiez le fichier /etc/ssh/sshd_config, mais il n’y a rien d’inhabituel à modifier. Etape 3 : Lancez sshd avec la ligne de commande suivante : /usr/sbin/sshd -p 2222. On suppose que vous lancez ssh sur le port 2222 avec une telle ligne de commande ! Choisissez tout de même un port libre.Il ne vous reste plus qu’à vous “loguer” sur la Mandrake. Allez sur une autre machine, ou revenez sur la distribution de base, et essayez : ssh localhost -p 2222. Si tout marche bien, vous êtes utilisateur sur la Mandrake, sans avoir besoin de passer par root ! Précautions configuration du système Mandrake. Autre conséquence directe : le système de fichiers que l’on trouve dans /proc est le même pour les deux systèmes. Ainsi, l’utilisateur root peut tout à fait tuer un processus Debian depuis la Mandrake. Par ailleurs, si installer une telle distribution sur une autre dans un environnement chrooté permet de faire pas mal de choses au niveau de la sécurité, il vous faut quand même vous rappeler les failles de sécurité de chroot, à commencer par la plus grosse : root est capable de sortir de l’environnement chrooté (en effectuant un nouveau chroot évidemment). Conclusion Vous avez installé une Mandrake sur une autre distribution, peut-être Debian comme moi. Et vous avez utilisé la méthode “from scratch” de cet article. Il en existe pourtant une autre, que je trouve plus facile mais pas pour autant plus intéressante. Vous pouvez installer les deux distributions l’une à côté de l’autre, et aller de l’une à l’autre en rebootant grâce à lilo ou grub. Avec un chroot bien placé, vous pouvez aussi faire tourner les deux en même temps comme ici. L’avantage est double : vous faites une installation normale, et vous pouvez aussi booter normalement sur chacune des distributions. Mais l’inconvénient est de devoir disposer d’une partition par distribution. La méthode présentée ici ne nécessite pas de partition spéciale. Autre avantage de la méthode présentée ici : vous n’avez qu’un noyau à maintenir puisque jamais vous ne booterez sur l’autre distribution. Enfin, l’intérêt majeur de cette méthode est pédagogique : vous avez un aperçu d’un Linux from scratch avec une gestion de paquets RPM, sans avoir à recompiler tous les logiciels. Et Slackware !? Alimentons le troll : vous pouvez aussi installer une Slackware dans un environnement chrooté. La méthode est la même : comprendre le système de paquets, installer la base, la réinstaller proprement, puis l’administrer de manière normale. Je l’ai fait : vous pouvez le faire ! Yves Mettier [email protected] Il existe une différence majeure entre une distribution installée comme ici sur une autre, et une distribution installée à côté d’une autre, et qu’on choisit avec lilo ou grub. Cette différence est que si les logiciels diffèrent, si les bibliothèques n’ont pas le même numéro de version et que les binaires sont liés aux bonnes bibliothèques, il y a toutefois un point commun : le noyau. Avez-vous remarqué que je n’ai parlé nulle part de partitions, de périphériques, de réseau ? Pourtant, cela marche dès le début ! En effet, sur la Mandrake, vous utilisez la configuration du noyau de la Debian, et le noyau Mandrake installé sur la Mandrake ne sert à rien. La conséquence directe est que toute modification sur la configuration du système de base, comme la coupure du réseau par exemple, modifie de la même manière la 56 LM 54 Références Chroot : man chroot Rpm : http://www.rpm.org Debian : http://www.debian.org Mandrake : http://www.mandrakelinux.com easy urpmi : http://plf.zarb.org/~nanardon/