Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
documentation:installer_0linux_manuellement [06-06-2013 18:07]
appzer0 [Installer des dépôts]
documentation:installer_0linux_manuellement [13-02-2015 13:32]
appzer0 [Créer une partition pour 0linux]
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)
 ---- ----
  
 ====Créer une partition pour 0linux==== ====Créer une partition pour 0linux====
- 
-:!: 0linux n'est pas encore adapté aux disques GPT et aux EFI ! Seules les disques MBR et les BIOS traditionnels sont pris en charge pour le moment. 
  
 Si la partition qui va accueillir 0linux n'​existe pas, il faudra la créer, par exemple avec : Si la partition qui va accueillir 0linux n'​existe pas, il faudra la créer, par exemple avec :
Ligne 55: Ligne 63:
 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 88:
 ''​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.
  
-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 77: Ligne 102:
 </​code>​ </​code>​
  
-Notez que vous pouvez copier ce script par exemple dans ''/​sbin''​ sur votre hôte pour faciliter les appels à ''​spackadd''​. ​On considère que vous ne le faites pas et que vous ne changez pas de répertoire.+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 completisolé 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 129: Ligne 162:
 ====Configurer le système==== ====Configurer le système====
  
-Renseignons notre langue dans ''/​mon_0linux/​etc/​locale.conf''​ en renseignant $LANG et $LC_ALL. **Utilisez systématiquement une « locale » UTF-8** si vous voulez éviter de GROSSES surprises : tous les fichiers sont commentés en français et rédigés en UTF-8, donc gare ! Exemple pour les français de France :+Renseignons notre langue dans ''/​mon_0linux/​etc/0linux/​locale''​ en renseignant $LANG et $LC_ALL. **Utilisez systématiquement une « locale » UTF-8** si vous voulez éviter de GROSSES surprises : tous les fichiers sont commentés en français et rédigés en UTF-8, donc gare ! On peut aussi appeler le script **0locale** une fois dans le chroot (voir plus bas). Exemple pour les français de France :
  
-<file bash locale.conf> +<file bash locale>
-# Localisation et langue du système. Ce fichier est renseigné d'​ordinaire via +
-# le programme '​0locale'​. +
-# La liste des « locales » supportées sur ce système sont disponibles via la commande : +
-# locale -a+
 LANG="​fr_FR.UTF-8"​ LANG="​fr_FR.UTF-8"​
 LC_ALL="​fr_FR.UTF-8"​ LC_ALL="​fr_FR.UTF-8"​
 </​file>​ </​file>​
  
-Renseignons une police ainsi qu'une disposition de clavier dans ''/​mon_0linux/​etc/​vconsole.conf''​. Personnellement,​ je recommande une police « ''​latin-9w''​ » avec une taille entre 12 et 16 pixels, avec une préférence pour 16 :+Renseignons une police ainsi qu'une disposition de clavier dans ''/​mon_0linux/​etc/​0linux/​clavier''​ et ''/​mon_0linux/​etc/​0linux/​police''​. Personnellement,​ je recommande une police « ''​latin-9w''​ » avec une taille entre 12 et 16 pixels, avec une préférence pour 16. On peut aussi appeler le script **0clavier** une fois dans le chroot (voir plus bas).
  
-<file bash vconsole.conf+<file bash clavier
-FONT="lat-9w-16+CLAVIER="fr-latin9
-KEYMAP="fr-latin9.map"+</​file>​ 
 + 
 +Et pour la police (On peut aussi appeler le script **0police** une fois dans le chroot (voir plus bas).) :  
 + 
 +<file bash police>​ 
 +POLICE="lat-9w-16"
 </​file>​ </​file>​
  
 Les claviers disponibles se trouvent dans le répertoire ''/​mon_0linux/​lib/​kbd/​keymaps/​i386''​ ou ''/​mon_0/​usr/​share/​kbd/​keymaps/​i386''​ de la distribution (l'un pointant sur l'​autre). Les claviers disponibles se trouvent dans le répertoire ''/​mon_0linux/​lib/​kbd/​keymaps/​i386''​ ou ''/​mon_0/​usr/​share/​kbd/​keymaps/​i386''​ de la distribution (l'un pointant sur l'​autre).
  
-On peut aussi paramétrer l'​horloge système/​fuseau horaire en créant un lien ''/​etc/​localtime -> ../​usr/​share/​zoneinfo/​Europe/​Paris''​ dans ''/​mon_0linux''​.+On peut aussi paramétrer l'​horloge système/​fuseau horaire en créant un lien ''/​etc/​localtime -> ../​usr/​share/​zoneinfo/​Europe/​Paris''​ dans ''/​mon_0linux'' ​On peut auss appeler le script **0horloge** une fois dans le chroot (voir plus bas). 
 + 
 +Le réseau a besoin d'une configuration basique dans le fichier ''/​mon_0linux/​etc/​0linux/​reseau''​. Créez-le simplement avec un : 
 + 
 +<code bash> 
 +touch /​mon_0linux/​etc/​0linux/​reseau 
 +</​code>​ 
 + 
 +...ou bien appelez le script **0reseau** une fois dans le chroot (voir plus bas). 
 ---- ----
  
Ligne 155: Ligne 198:
  
 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 /sys /​mon_0linux/​sys+mount --bind /run  /​mon_0linux/​run 
 +mount --bind /sys  /​mon_0linux/​sys
 </​code>​ </​code>​
  
Ligne 168: Ligne 214:
 </​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 177: Ligne 223:
  
 <code bash> <code bash>
-mount --bind /dev /​mon_0linux/​dev +umount ​/​mon_0linux/​dev 
-mount --bind ​/proc /​mon_0linux/​proc +umount /mon_0linux/proc 
-mount --bind /sys /​mon_0linux/​sys+umount ​/​mon_0linux/​proc 
 +umount ​/​mon_0linux/​sys
 </​code>​ </​code>​
  
Ligne 190: Ligne 237:
 <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.