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/