Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
documentation:installer_0linux_manuellement [28-09-2013 20:44] appzer0 [Configurer le système] |
documentation:installer_0linux_manuellement [02-04-2014 09:24] appzer0 [Se procurer les paquets] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====Installer manuellement 0linux==== | ====Installer manuellement 0linux==== | ||
- | |||
- | :!: Ce document a certainement besoin de précisions ou d'actualisation, n'hésitez pas à signaler tout problème ou procédure pas assez claire. | ||
**0linux** est installable manuellement en suivant la méthode qui suit. Cela peut être utile si l'on souhaite installer une version de développement de 0linux, qu'on ne dispose pas de l'installateur ou bien qu'on veuille l'installer depuis une autre distribution de Linux. Réservez-vous une partition confortable pour installer le système ; 20 Go, par exemple. Passez en ''root'' ou utilisez ''sudo'' pour suivre ce document. | **0linux** est installable manuellement en suivant la méthode qui suit. Cela peut être utile si l'on souhaite installer une version de développement de 0linux, qu'on ne dispose pas de l'installateur ou bien qu'on veuille l'installer depuis une autre distribution de Linux. Réservez-vous une partition confortable pour installer le système ; 20 Go, par exemple. Passez en ''root'' ou utilisez ''sudo'' pour suivre ce document. | ||
Ligne 10: | Ligne 8: | ||
====Se procurer les paquets==== | ====Se procurer les paquets==== | ||
- | Récupérez tous les paquets ''*.spack'' de 0linux, c'est-à dire tout le contenu des 3 dépôts principaux ''base'', ''opt'' et ''xorg''. On pourra installer des dépôts supplémentaires venant de ''apps'' plus tard grâce à ''0g''. | + | Récupérez tous les paquets de 0linux, voyez la page Téléchargements pour cela. |
Si vous êtes sur le système autonome 0linux, ''dhcpcd'' est censé avoir établi une connexion (filaire uniquement) à internet. On dispose aussi sur le système autonome de ''wireless-tools'' pour établir une connexion sans-fil manuellement. | Si vous êtes sur le système autonome 0linux, ''dhcpcd'' est censé avoir établi une connexion (filaire uniquement) à internet. On dispose aussi sur le système autonome de ''wireless-tools'' pour établir une connexion sans-fil manuellement. | ||
Ligne 19: | Ligne 17: | ||
mkdir -p /home/moi/0linux/paquets | mkdir -p /home/moi/0linux/paquets | ||
cd /home/moi/0linux/paquets | cd /home/moi/0linux/paquets | ||
- | rsync -a rsync://ftp.igh.cnrs.fr/0linux/paquets/x86_64/{base,opt,xorg} . | + | rsync -a rsync://ftp.igh.cnrs.fr/0linux/paquets/eta/x86_64/<depot>/<paquet>/<paquet>.spack . |
</code> | </code> | ||
+ | |||
+ | Récupérez d'abord les paquets critiques, à savoir : | ||
+ | * a/busybox | ||
+ | * a/base-systeme | ||
+ | * b/glibc | ||
+ | * b/ncurses | ||
+ | * b/readline | ||
+ | * d/bash | ||
+ | * a/sgml-common | ||
+ | * a/0outils | ||
+ | |||
+ | Ou alors synchronisez l'ensemble du dépôt de 0Linux (qui représenteplus de 4,5 Go de paquets - pour 0Linux eta début 2014) | ||
---- | ---- | ||
Ligne 55: | Ligne 65: | ||
mount /dev/sda1 /mon_0linux | mount /dev/sda1 /mon_0linux | ||
</code> | </code> | ||
+ | ---- | ||
+ | |||
+ | ====Monter les systèmes de fichiers virtuels==== | ||
+ | |||
+ | Bien qu'optionnel, monter les systèmes de fichiers virtuels de l'hôte (tmpfs, proc, sys, etc.) est chaudement recommandé car cela va permettre aux scripts de post-installation de chaque paquet d'accéder aux périphériques spéciaux de l'hôte comme ''/dev/null''. | ||
+ | |||
+ | On monte donc avec l'option ''--bind'' de ''mount'' qui va permettre de monter à un autre emplacement un système de fichiers déjà monté ailleurs. Le contenu est ainsi synchronisé à 2 emplacement différents. ''/run'' est facultatif. Le système de fichiers le plus important reste ''/dev'' : | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -p /mon_0linux/{dev,proc,run,sys} | ||
+ | mount --bind /dev /mon_0linux/dev | ||
+ | mount --bind /proc /mon_0linux/proc | ||
+ | mount --bind /sys /mon_0linux/sys | ||
+ | mount --bind /run /mon_0linux/run | ||
+ | </code> | ||
+ | |||
+ | On fera bien attention à démonter ces systèmes de fichiers une fois qu'on aura terminé. | ||
---- | ---- | ||
Ligne 63: | Ligne 90: | ||
''spackadd'' est un simple script, inoffensif pour votre hôte. Si votre distribution est un tant soit peu standard, le script devrait se comporter correctement. Au pire, il ne créera rien sur votre machine. Notez que vous aurez besoin de certains logiciels comme ''cpio'' ou ''xz'', généralement inclus dans les distributions Linux les plus répandues, pour faire fonctionner Spack. | ''spackadd'' est un simple script, inoffensif pour votre hôte. Si votre distribution est un tant soit peu standard, le script devrait se comporter correctement. Au pire, il ne créera rien sur votre machine. Notez que vous aurez besoin de certains logiciels comme ''cpio'' ou ''xz'', généralement inclus dans les distributions Linux les plus répandues, pour faire fonctionner Spack. | ||
- | Si vous êtes sur le système autonome de 0linux, vous disposez déjà de ''spackadd'', ignorez cette section. Sinon, récupérons les sources de Spack sur le site du développeur [[http://requiescant.tuxfamily.org/]], par exemple pour la version 3.9 : | + | Si vous êtes sur le système autonome de 0linux, vous disposez déjà de ''spackadd'', ignorez cette section. Sinon, récupérons les sources de Spack sur le site du développeur [[http://requiescant.tuxfamily.org/]], par exemple : |
<code bash> | <code bash> | ||
- | wget http://requiescant.tuxfamily.org/files/spack-3.9.tar.gz | + | wget http://requiescant.tuxfamily.org/files/spack-3.10.tar.gz |
- | tar xf spack-3.8.tar.gz | + | tar xf spack-3.10.tar.gz |
- | cd spack-3.8 | + | cd spack-3.10 |
</code> | </code> | ||
Ligne 79: | Ligne 106: | ||
Notez que vous pouvez copier ce script par exemple dans ''/sbin'' sur votre hôte pour faciliter les appels à ''spackadd''. C'est ce qu'on va considérer ici. Sinon, ajoutez le chemin du script ''spackadd'' dans chaque appel. | Notez que vous pouvez copier ce script par exemple dans ''/sbin'' sur votre hôte pour faciliter les appels à ''spackadd''. C'est ce qu'on va considérer ici. Sinon, ajoutez le chemin du script ''spackadd'' dans chaque appel. | ||
- | On commence par installer les paquets critiques de ''base''. Si on ne les installe pas en premier, certains problèmes peuvent survenir par la suite. Notons que ''busybox'' et ''base-systeme'' sont à installer **obligatoirement en premier** afin de créer les liens symboliques vitaux ''/bin'', ''/lib'' et ''/sbin'': | + | On commence par installer les paquets critiques de base. Si on ne les installe pas en premier, certains problèmes peuvent survenir par la suite. Notons que ''busybox'' et ''base-systeme'' sont à installer **obligatoirement en premier** afin de créer les liens symboliques vitaux ''/bin'', ''/lib'' ''lib64'' et ''/sbin'': |
<code bash> | <code bash> | ||
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/busybox-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/a/busybox-*.spack |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/base-systeme-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/a/base-systeme-*.spack |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/eglibc-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/glibc-*.spack |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/readline-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/readline-*.spack |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/ncurses-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/b/ncurses-*.spack |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/bash-* | + | spackadd --root=/mon_0linux /home/moi/0linux/paquets/d/bash-*.spack |
</code> | </code> | ||
- | Installons tous les paquets des dépôts principaux de 0linux dans notre partition dédiée grâce à la commande suivante (les 6 paquets déjà installés afficheront une erreur qui sera ignorée) : | + | Installons tous les paquets de ''z/base-abonnement'', ils figurent dans le fichier ''.dep'' (les 6 paquets déjà installés afficheront une erreur qui sera ignorée) : |
<code bash> | <code bash> | ||
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/base/*.spack | + | for f in $(cat base-abonnement-x-x86_64-1.dep); do |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/opt/*.spack | + | spackadd --root=/mon_0linux $(find /home/moi/0linux/paquets -type f -name "${f}*.spack") |
- | spackadd --root=/mon_0linux /home/moi/0linux/paquets/xorg/*.spack | + | done |
</code> | </code> | ||
- | On a désormais un système complet isolé dans ''/mon_0linux''. | + | On a désormais un système minimal mais complet, isolé dans ''/mon_0linux''. |
+ | |||
+ | Vous pouvez également passer par ''0g'' en lui passant la variable ROOT : | ||
+ | |||
+ | <code bash> | ||
+ | ROOT=/mon_0linux 0g busybox base-systeme glibc etc. | ||
+ | </code> | ||
+ | |||
+ | Puis installer ''base-abonnement'', par exemple. | ||
---- | ---- | ||
Ligne 158: | Ligne 193: | ||
</code> | </code> | ||
- | ...ou bien appelez le script **0reseau** une fois dans le chroot (voir plus bas)/ | + | ...ou bien appelez le script **0reseau** une fois dans le chroot (voir plus bas). |
---- | ---- | ||
Ligne 165: | Ligne 200: | ||
Pour passer sur le nouveau système, par exemple pour créer un utilisateur avec ''0nouvel_utilisateur'' ou bien, de manière plus conventionnelle, avec ''useradd'' et plus généralement configurer le système fraîchement installé, vous pouvez utiliser ''chroot''. Il convient de s'assurer que les systèmes de fichiers virtuels soient aussi montés sur cette nouvelle racine, notamment, ''/dev'', ''/proc'' et ''/sys''. On va pour cela simplement utiliser l'option ''mount --bind'' pour monter les systèmes de fichiers déjà existants de l'hôte sur la nouvelle racine : | Pour passer sur le nouveau système, par exemple pour créer un utilisateur avec ''0nouvel_utilisateur'' ou bien, de manière plus conventionnelle, avec ''useradd'' et plus généralement configurer le système fraîchement installé, vous pouvez utiliser ''chroot''. Il convient de s'assurer que les systèmes de fichiers virtuels soient aussi montés sur cette nouvelle racine, notamment, ''/dev'', ''/proc'' et ''/sys''. On va pour cela simplement utiliser l'option ''mount --bind'' pour monter les systèmes de fichiers déjà existants de l'hôte sur la nouvelle racine : | ||
+ | |||
+ | (Vous avez peut-être déjà monté ces systèmes de fichiers plus haut dans cette page, dans ce cas ignorez cette étape). | ||
<code bash> | <code bash> | ||
- | mount --bind /dev /mon_0linux/dev | + | mount --bind /dev /mon_0linux/dev |
mount --bind /proc /mon_0linux/proc | mount --bind /proc /mon_0linux/proc | ||
- | mount --bind /run /mon_0linux/run | + | mount --bind /run /mon_0linux/run |
- | mount --bind /sys /mon_0linux/sys | + | mount --bind /sys /mon_0linux/sys |
</code> | </code> | ||
Ligne 179: | Ligne 216: | ||
</code> | </code> | ||
- | On quittera le nouveau système avec un simple : | + | On utilisera de préférence ''0g'' pour installer des paquets ou des abonnements. On quittera le nouveau système avec un simple : |
<code bash> | <code bash> | ||
Ligne 202: | Ligne 239: | ||
<code bash> | <code bash> | ||
$ ls -l /boot/ | $ ls -l /boot/ | ||
- | -rw-r--r-- 1 root root 5125296 11 mai 11:27 noyau-3.8.1 | + | -rw-r--r-- 1 root root 5125296 11 mai 11:27 noyau-3.x.x |
- | lrwxrwxrwx 1 root root 11 11 mai 11:37 vmlinuz -> noyau-3.8.1 | + | lrwxrwxrwx 1 root root 11 11 mai 11:37 vmlinuz -> noyau-3.x.x |
</code> | </code> | ||
- | Vous pouvez donc indiquer l'un ou l'autre des ces fichiers à votre chargeur d'amorçage. Attention cependant si vous avez d'autres distributions Linux installées, le lien ''vmlinuz'' étant standard, il se peut que vous ayez aussi ce lien, mais pointant vers un autre noyau. Dans le doute, choisissez plutôt le noyau lui-même, nommé (ici) ''noyau-3.8.1''. Le noyau de 0linux ne nécessite aucun « initrd », le maximum d'options étant déjà activées ou compilées entant que modules. | + | Vous pouvez donc indiquer l'un ou l'autre des ces fichiers à votre chargeur d'amorçage. Attention cependant si vous avez d'autres distributions Linux installées, le lien ''vmlinuz'' étant standard, il se peut que vous ayez aussi ce lien, mais pointant vers un autre noyau. SI vosu utilisez d emultiples systèmes d'exploitations Linux, dans le doute, choisissez plutôt le noyau lui-même, nommé (ici) ''noyau-3.8.1''. Utilisez le lien ''vmlinuz'' permet de profiter de chaque mise à niveau du noyau de 0Linux sans avoir à reconfigurer quoi que ce soit. Le noyau de 0linux ne nécessite aucun « initrd », le maximum d'options étant déjà activées ou compilées en tant que modules. |
Voyez la page [[Amorçage]] pour en savoir plus sur les méthodes d'amorçage. | Voyez la page [[Amorçage]] pour en savoir plus sur les méthodes d'amorçage. |