NuTyxNuTyX sur Twitter

Guide d'utilisation pour NuTyX.

1. Préface
2. Introduction
2.1. Qu'est-ce que NuTyX
2.2. Pourquoi utiliser NuTyX
2.3. Licences
2.3.1. Les scripts
2.3.2. Les paquets
2.3.3. Le système de maintenance
2.3.4. AUCUNE GARANTIE
3. Installation de NuTyX
3.1. Matériel supporté
3.2. Type de médias supportés
3.3. Installation depuis le média
3.4. Installation depuis le système de maintenance (ou depuis l'iso de base)
3.5. Installation depuis le script d'installation
4. Le gestionnaire de paquets
4.1. pkg-get pour la gestion des paquets binaires et de leurs dépendances
4.1.1. Installation d'un paquet binaire et de ses dépendances
4.1.2. Mettre à jour un ou plusieurs paquets binaires
4.1.3. Fichiers de configuration de pkg-get
4.1.3.1. /etc/pkg-get.conf
4.2. Autres options bien utiles de pkg-get
4.2.1. Connaître la liste des paquets installés
4.2.2. Connaître la liste des paquets disponibles le dépot
4.2.3. Obtenir les informations détaillées sur un paquet
4.2.4. Recherches possibles sur un paquet
4.3. Résumé des commandes à connaître pour la gestion des paquets
5. Configuration de NuTyX
5.1. Les scripts de configuration
5.1.1. Mode d'initialisation
5.1.2. Le clavier
5.1.3. Le nom de la machine
5.2. Le réseau
5.2.1. Spécifier une adresse statique
5.2.2. Configurer le service SSH pour accéder la machine à distance
5.3. Amorçage de la machine
5.4. Résolution graphique
5.4.1. Pilotes standards libre de xorg.freedesktop.org
6. Fonctionnement de NuTyX
6.1. Introduction
6.2. Historique
6.3. Initialisation de NuTyX
6.3.1. Amorçage de la machine
6.3.2. Le noyau
6.3.3. L'initrd
6.3.4. Les scripts de d'initialisation
6.3.5. Exemple de personnalisation de l'inittab
6.4. Le système de maintenance
6.4.1 Introduction
7. Empaqueter ses propres paquets sous NuTyX
7.1. Introduction
7.2. Le système de ports
7.2.1. Qu'est ce qu'un port ?
7.2.2. le système de ports
7.2.3. Les collections de ports
7.2.3.1. La collection officielle
7.2.3.2. Les collections publiques
7.2.4. Utilisation des ports
7.2.4.1. Synchronisation des ports
7.2.4.2. Afficher les ports locals
7.2.4.3. Différencier les versions installées et disponibles
7.2.5. Fichiers de configuration des ports
7.3. pkgutils le gestionnaire de base des ports et des binaires
7.3.1. Construction et Installation d'un paquet
7.3.2. Mettre à jour d'un paquet
7.3.3. Supprimer un paquet
7.3.4. Requête d'informations sur les paquets installés
7.3.5. Fichiers de configuration de pkgutils
7.3.5.1. /etc/pkgmk.conf
7.3.5.2. /etc/pkgadd.conf
7.4. prt-get pour la gestion des ports et de leurs dépendances
7.4.1. Installation d'un port et de ses dépendances
7.4.2. Mettre à jour un ou plusieurs ports
7.4.3. Requête d'informations sur les ports (installés ou non)
7.4.4. Fichiers de configuration de prt-get
7.4.4.1. /etc/prt-get.conf
7.5. Installation d'une application non disponible non disponible sous NuTyX
7.5.1. Introduction
7.5.2. Première approche: sans le support de pkgutils
7.5.3. Deuxième approche: utilisation de pkgutils
7.5.3.1. Définition d'un port
7.5.3.2. Contenu final du Pkgfile
7.5.4. Allez plus loin dans la construction des paquets
7.5.4.1 Ajuster les fichiers de configuration
7.5.4.2 Construire ses paquets dans une NuTyX chroot
Appendix 1. Foire aux questions
A 1.1. L'installateur ne permet pas de créer une partition séparée pour le /home par exemple
A 1.2. 2. L'installateur formate la partition en reiserfs par défaut si je ne l'ai pas spécifié
A 1.3. 3. Est-il possible de mettre à jour NuTyX pakxe vers NuTyX sekong sans devoir tout réinstaller ?
A 1.4. 4. Si je supprime un paquet, ses dépendances ne sont pas supprimées. Pourquoi ?

1. Préface

Thierry Nuttens a rédigé ce guide d'utilisation, il s'est inspiré du guide d'utilisation de CRUX puisque les deux distributions ont des fonctionnalités similaires. Pierre (sibelle) et François V. (fanch) l'ont contrôlé et corrigé. Vous trouverez également des informations concernant le projet NuTyX sur le wiki de LinuxPedia.

2. Introduction

2.1 Qu'est-ce que NuTyX ?

NuTyX est une distribution GNU/Linux légère, performante et complète pour les utilisateurs francophones avertis et/ou très motivés. Il est en effet conseillé de posséder quelques connaissances sur le système GNU/Linux. Néanmoins, NuTyX peut aussi être un excellent système d'exploitation pour celui qui souhaite s'investir et ainsi développer ses connaissances. Avec son système de ports, NuTyX est un système d'exploitation facile à installer et à maintenir.

2.2. Pourquoi utiliser NuTyX ?

Le système d'exploitation est basé sur l'excellente documentation Linux From Scratch et utilise le gestionnaire de paquets emprunté de la distribution CRUX avec quelques fonctionnalités supplémentaires comme la gestion directe des paquets binaires. La recette d'un paquet binaire est extrèmement simple, il est donc très facile d'ajouter ses propres paquets. Si votre langue maternelle est le français, NuTyX vous permettra de rentrer facilement dans le système, toute la documentation est en français. A chaque nouvelle version de NuTyX, l'intégralité des paquets est recompilée pour assurer une plus grande stabilité et une cohérence du système. Si vous le souhaitez, un script d'installation suffit pour installer NuTyX sur votre disque dur. NuTyX fournit à la fois un système d'exploitation complet avec au choix: KDE ou XFCE comme interface graphique mais aussi un système de maintenance graphique avec les outils nécessaires pour faire la maintenance de votre NuTyX. Le système de maintenance se charge en mémoire RAM et donc ne monte aucune unité de stockage ce qui permet de faire toutes les opérations possibles sur ces unités. Une fois installée, vous trouverez dans ce guide d'utilisation toutes les informations nécessaires pour profiter pleinement de votre nouvelle distribution.

2.3. Licences

2.3.1. Les paquets de logiciels

NuTyX étant une distribution GNU/linux, elle contient des logiciels écrits par un grand nombre de développeurs. Chaque paquet de logiciel est donc fourni avec sa propre licence d'utilisation choisie par son (ses) auteur(s). Pour connaître le type de licence utilisée pour un paquet particulier, veuillez consulter les codes sources dudit paquet.

2.3.2. Les scripts

Les scripts provenant du projet Linux From Scratch sont sous licence Creative Commons License 2.0. Certains scripts sont ajustés pour l'usage de NuTyX par Thierry Nuttens. Les ports de NuTyX sont sous licence GNU Generic Public Licence.

2.3.3. Le système de maintenance

Le système de maintenance est développé depuis zéro par Thierry Nuttens et est sous licence GNU Generic Public Licence.

2.3.4. AUCUNE GARANTIE

NuTyX est proposée dans le but de pouvoir être utilisée en espérant qu'elle vous sera utile. Aucune garantie n'est fournie ni la possibilité d'en faire un produit commercial. Vous utilisez NuTyX à vos propres risques. NuTyX ne peut en aucun cas être responsable pour la perte de données personnelles quelle qu'elles soient.

3. Installation de NuTyX

ImportantIMPORTANT:

Si vous choisissez d'installer le système de base uniquement, il faut savoir que seul l'utilisateur root est créé. Il est conseillé de créer l'utilisateur normal après avoir installé son interface graphique favorite. La commande (spécifique à NuTyX) pour créer un utilisateur s'appelle nu :

[ ~ ] nu
Nom de l'utilisateur: 
Description de l'utilisateur:
Création de test.

Changement du mot de passe de test
Entrez le nouveau mot de passe (minimum de 5, maximum de 8
caractères). Utilisez une combinaison de lettres majuscules, minuscules
et de chiffres.
Nouveau mot de passe :
Nouveau mot de passe (pour vérification) :
[ ~ ]

3.1. Matériel supporté

Les paquets binaires de NuTyX sont compilés avec une optimisation pour les processeurs i686 (Pentium-Pro/Celeron/Pentium-II ou supérieur). Il n'est pas possible de faire fonctionner NuTyX sur un i586 (Pentium, AMD K6/K6-II/K6-III) ou processeur plus ancien.

Un minimum de 1024 MB de mémoire RAM (système) est recommendé pour l'installation de NuTyX depuis le liveDVD, 512 MB pour l'installation depuis le liveCD et 128 MB suffisent pour l'installation du système de base depuis le script ou depuis le système de maintenance.

3.2. Type de médias supportés

Les médias supportés sont le CD, le DVD ou la clé USB. Il est toujours préférable d'utiliser une clé USB si cela est possible, c'est un média rapide, réutilisable et très fiable, il faut cependant s'assurer que la machine sur laquelle vous installez NuTyX est capable de démarrer sur une clé USB.

Quelque soit votre choix de média, l'image est toujours identique. Téléchargez l'image iso de votre choix. Pour vous assurez de l'intégrité de l'image, utilisez la commande md5sum pour la vérifier.

$ md5sum NuTyX_i686-sekong-LIVE-XFCE.iso
Comparez le résultat de la commande ci-dessus avec celui de l'iso que vous avez téléchargé sur la page de téléchargement. Si vous choisissez le CD ou DVD, prenez votre logiciel de gravure favori et gravez l'iso. Dans le cas du choix d'une clé USB, vous utilisez la commande:

# dd if=NuTyX_i686-sekong-LIVE-XFCE.iso of=/dev/xxx

en root pour transférer l'image iso sur la clé usb. Veuillez ajuster /dev/xxx à votre cas. Pour connaître l'emplacement de votre clé USB, la commande fdisk -l pourra vous informer. Veuillez noter que l'on utilise toujours la commande dd en spécifiant le média complet cad /dev/sdb et non sdb1 qui est une partition sur le média.

3.3. Installation depuis un média

Une fois le media inséré, boutez sur celui-ci. Si le média s'est correctement amorcé, vous devriez avoir un écran comme la Figure 1.

Figure 1: Amorçage du média.

Vous pouvez lire plusieurs infos sur lors de l'amorçage du media: il est en effet possible d'utiliser ce media pour installer NuTyX sur votre disque dur OU pour lancer une NuTyX déjà installé mais n'ayant aucune methode d'amorçage. Dans ce deuxième cas tapez simplement le nom et numéro de la partition sur laquelle se trouve NuTyX ex: sda3 (sans /dev/) sinon tapez simplement "Entrée" (Return). Une fois la séquence d'amorçage du média terminée ( +/- 10 secondes en fonction de votre matériel ), un nouvel écran se présente comme sur la Figure 2.

Figure 2: Bienvenue dans l'installateur de NuTyX.

Il est recommandé d'avoir la partition de destination déjà formatée. Vous pouvez utiliser un des systèmes de fichiers ext2, ext3, ext4 ou reiserfs. Le système de fichiers btrfs est également supporté, mais si celui-ci est choisi, il faudra spécifier une partition séparée pour le dossier boot cad pour l'amorçage de la machine. GRUB (le système d'amorçage de NuTyX) ne supporte pas encore le système de fichiers btrfs. Il est à noter que si vous n'avez pas de partitions formatées lors du lancement de l'installation, l'installateur propose d'office de formater en reiserfs. Une fois la touche "Entrée" validée, un nouvel écran se présente comme la Figure 3.

Figure 3: Choix du clavier pour l'installation de NuTyX.

La première chose à choisir est le clavier utilisé, sur la figure 2, c'est le clavier suisse français qui sera choisi. Il est important de choisir immédiatement le bon clavier, le choix du clavier ne sera plus demandé lors de l'installation de NuTyX et donc la même disposition de clavier sera utilisée dans NuTyX une fois installée. Dès que le clavier sera spécifié, si l'image que vous avez téléchargée est un liveCD, vous vous trouverez sur le bureau de XFCE comme il est présenté sur la Figure 4.

Figure 4: Le bureau de XFCE du liveCD de NuTyX.

Vous pouvez désormais créer, réorganiser, supprimer des partitions pour l'installation de NuTyX, une fois la (les) partitions prêtes, vous pouvez cliquer sur "Installer NuTyX sur votre disque dur", le mot de passe du compte root vous sera demandé comme dans la figure 5.

Figure 5: Demande du mot de passe du compte administrateur root (nutyx).

Une fois l'installateur lancé, il est important d'ajuster la date et l'heure de la machine afin que le système de fichiers se monte sans erreur lors de l'amorçage de NuTyX. La figure 6. propose l'ajustement de la date.

Figure 6: Ajustement de la date.

Dès que la date et l'heure sont ajustées, l'installateur vous demande sur quelle partition installer NuTyX. Il est toujours possible à ce moment d'annuler l'installation en choisissant "Menu principal". Si vous relancez l'installeur de NuTyX, la date et l'heure ne seront plus demandées.

Figure 7: Choix de la partition de destination pour l'installation de NuTyX.

Si la partition de destination n'est pas formatée, l'installateur proposera de la formater en reiserfs. Une fois la partition choisie, on choisit le type d'installation comme le montre la figure 8.

Figure 8: Choix du type d'installation.

Par défaut et si vous avez choisi le liveCD comme iso, c'est l'installation du liveCD qui sera choisie, si vous choisissez "Installation du système de base, vous aurez une NuTyX de base fonctionnelle sur laquelle il sera possible d'installer les logiciels de votre choix. L'installation du liveCD permet d'avoir une NuTyX avec interface graphique immédiatement fonctionnelle. L'installation du système de base permet de "se monter" une NuTyX "sur mesure". Dans les 2 cas, le mot de passe du compte administrateur root sera demandé comme sur la figure 10.

Figure 9: Installation du liveCD en cours.

Figure 10: Nouveau mot de passe pour le compte administrateur root de la machine.

Le mot de passe du compte administrateur doit être suffisament complexe pour assurer un minimum de protection en cas de tentative de connection. Une fois le mot de passe du compte administrateur root entré, l'installateur crée un nouvel utilisateur de votre choix comme le montre la figure 11.

Figure 11: Création de l'utilisateur habituel de la machine.

L'utilisateur habituel est la personne qui utilise la machine le plus souvent. Le nom d'utilisateur ne peut pas contenir d'espace ni de majuscules. La description de l'utilisateur peut contenir espace et majuscules. Le mot de passe peut être vide, nous recommandons de spécifier un mot de passe, indispensable si un accès à distance ssh sera configuré. Une fois le mot de passe validé, l'installation de NuTyX est terminée comme le montre la figure 12.

Figure 12: L'installation de NuTyX est terminée.

L'installation de NuTyX et l'installation d'un système d'amorçage sont 2 choses indépendantes sous NuTyX. La raison de ce choix est que la plupart du temps les utilisateurs avertis ne choisissent pas d'installer de système d'amorçage car il y en a déjà un d'actif. Nous pouvons donc maintenant choisir d'installer ou pas un système d'amorçage comme le montre la figure 13.

Figure 13: Configuration du lancement du PC (optionel).

Un système d'amorçage est indispensable pour que le PC puisse amorcer le système d'exploitation se trouvant sur le disque dur cad NuTyX dans notre cas. NuTyX utilise actuellement GRUB comme système d'amorçage par défaut. Pour que GRUB puisse fonctionner correctement, il faut spécifier 2 emplacements. La figure 13 montre la sélection du disque dur sur lequel le MBR (Master Boot Record) cad les 440 tous premiers octets du disque dur que le bios de la machine est capable d'amorcer. Soyez attentif que si vous ne souhaitez pas modifier le MBR du disque, il existe d'autre méthode de configuration d'amorçage. Dès que le disque a été choisi, la figure 14 nous demande sur quelle partition installer l'application GRUB

Figure 14: Choix de la partition boot.

Il faut spécifier sur quelle partition seront installées les fichiers de l'application GRUB ainsi que le menu.lst. Il est important que la partition de destination soit formatée en ext2, ext3, ext4 ou reiserfs. Si vous avez installez NuTyX sur une partition formatée en btrfs et que vous ne disposez que d'une partition, vous ne pourrez pas l'amorcer avec GRUB. Il est donc indispensable de prévoir une partition séparée pour l'amorçage de la machine. Dans ce cas l'installation de GRUB sera faite sur cette partition. Conclusion, l'installation de GRUB peut se faire sur la même partition que celle utilisée par NuTyX ou sur une autre partition. Une fois la partition sélectionnée, l'installation de GRUB se termine comme le montre la figure 15.

Figure 15: Installation de GRUB termninée.

GRUB est installé et une copie du MBR avant modification a été sauvegardée dans le dossier grub (/boot/grub/MBR.original) afin de pouvoir récupérer l'état de l'amorçage de la machine AVANT installation de GRUB. Cela peut s'avérer très utile si on constate que ce n'est pas du tout ce que l'on souhaitait comme methode d'amorçage...

3.4. Installation depuis le système de maintenance (ou depuis l'iso de base)

Le système de maintenance permet d'installer (ou mettre à jour) NuTyX sur votre ordinateur. Elle se trouve dans l'initrd qui est installée sur votre NuTyX. Au démarrage de la machine, il suffit de choisir dans le premier menu: Maintenance de NuTyX comme le montre la figure 15.

Figure 16: Lancement de la maintenance au boot.

Une fois amorcée, le système de maintenance dispose exactement des mêmes menus que l'iso. Pour la suite de l'explication, j'utiliserai l'iso de BASE. Donc comme dans le liveD, après une dizaine de secondes un nouvel écran se présente comme sur la figure 17.

Figure 17: Bienvenue dans l'installateur de NuTyX.

Pour l'explication de l'installation nous allons faire une mise à jour de NuTyX tout en gardant le dossier personel (/home). Donc dans notre exemple, nous avons déjà une NuTyX installée sur le disque dur. Une fois la touche "Entrée" validée, un nouvel écran se présente comme la Figure 18.

Figure 18: Choix du clavier pour la mise à de NuTyX.

La première chose à choisir est le clavier utilisé, sur la figure 18, c'est le clavier suisse français qui sera choisi. Il est important de choisir immédiatement le bon clavier, le choix de celui-ci ne sera plus demandé lors de l'installation de NuTyX et donc la même disposition de clavier sera utilisée dans NuTyX une fois installée. Dès que le clavier sera spécifié, un nouveau message apparaît comme le montre la figure 19:

Figure 19: Vous avez à votre disposition des consoles de d'accès

Il est très utile d'avoir des consoles d'accès dans le système de maintenance / dans l'iso. Elles vous permettent de faire quelques petites manipulations si nécessaire. Pour y accèder, il suffit d'utiliser les flèches de directions gauche et droite ensemble avec la touche alt. Comme dans le liveCD, il est important d'ajuster la date et l'heure de la machine comme sur la figure 20.

Figure 20: Ajustement de l'heure.

Dès que la date et l'heure sont ajustées, l'installateur vous demande sur quelle partition installer NuTyX. Notez que la question reste valable même si vous souhaitez faire une mise à jour de NuTyX comme le montre la figure 21.

Figure 21: Choix de la partition de destination pour la mise à jour de NuTyX.

La partition de destination est bien formatée, l'installateur analyse la partition et affiche un message comme sur la figure 22.

Figure 22: NuTyX est déjà installé, il faut l'effacer pour mettre à jour.

Comme il existe déjà une distribution sur la partition (NuTyX ou autre), l'installateur nous propose de vérifier dans une console son contenu. Dans notre exemple, nous savons que l'on souhaite mettre à jour la NuTyX qui est sur sda1. Une fois pressé OK, nous sommes dans le menu principal et choisissons Effacer une distribution comme sur la figure 23.

Figure 23: Il est possible d'effacer NuTyX sans perdre les données se trouvant dans le dossier /home.

Figure 24: Choix de la partition à effacer.

Une fois que le choix est confirmé, la partition s'efface dossier par dossier à l'exception de /home et tous les dossiers qui ne sont pas liés à NuTyX comme le montre la figure 25.

Figure 25: Confirmation du choix.

Seuls les dossiers /bin, /sbin, /etc, /usr, /opt, /var, /lib, /proc, /sys sont supprimés. Il est temps de réinstaller maintenant NuTyX sur la même partition en choisissant Installer NuTyX et son amorçage dans le menu principal comme le montre la figure 26.

Figure 26: Réinstallation de NuTyX.

Il suffit de choisir à nouveau la partition de destination comme le montre la figure 27.

Figure 26: Choix de la partition de destination pour la mise à jour de NuTyX.

Et l'installation du système de base se lance comme le montre la figure 27.

Figure 27: Installation du système de en cours.

Une fois les paquets de base installés, l'installateur demande un mot de passe pour le compte root. Aucun autre compte n'est créé. Il est alors possible d'installer GRUB

Figure 28: Configuration du lancement du PC (optionel).

Figure 29: Choix de la partition boot.

Il faut spécifier sur quelle partition seront installés les fichiers de l'application GRUB ainsi que le menu.lst. Il est important que la partition de destination soit formatée en ext2, ext3, ext4 ou reiserfs. Si vous avez installez NuTyX sur une partition formatée en btrfs et que vous ne disposez que d'une partition, vous ne pourrez pas l'amorcer avec GRUB. Il est donc indispensable de prévoir une partition séparée pour l'amorçage de la machine. Dans ce cas l'installation de GRUB sera faite sur cette partition. Conclusion, l'installation de GRUB peut se faire sur la même partition que celle utilisée par NuTyX ou sur une autre partition. Une fois la partition sélectionnée, l'installation de GRUB se termine comme le montre la figure 30.

Figure 30: Installation de GRUB terminée.

GRUB est installé et une copie du MBR avant modification a été sauvegardée dans le dossier grub (/boot/grub/MBR.original) afin de pouvoir récupérer l'état de l'amorçage de la machine AVANT installation de GRUB. Cela peut s'avérer très utile si on constate que ce n'est pas du tout ce que l'on souhaitait comme méthode d'amorçage...

3.5. Installation depuis le script d'installation

Sur les isos, le script d'installation est appelé par l'installeur semi-graphique. Si vous le souhaitez, il est possible d'installer NuTyX en utilisant directement ce même script depuis votre distribution actuelle. La procédure est assez simple. Cette méthode est très utile et peut être utilisée pour installer NuTyX sur une partition ou un dossier. Si vous installez NuTyX dans un dossier, vous pourrez "entrer" dans NuTyX en chroot par exemple. Pour pouvoir installer NuTyX via le script, il faut s'assurer que les conditions suivantes soient remplies:

  • Le script installera en fonction de la version de la machine host. Si la host est une distribution 32 bits, l'installation sera en 32 bits. Elle sera en 64 bits si la machine host est en 64 bits.
  • La commande xz doit être disponible sur la distribution utilisée
  • Le compte root doit être utilisé pour lancer le script
  • L'interpréteur de commande doit être bash
  • Si vous installez sur une partition, assurez-vous que la partition de destination est formatée en ext2, ext3, ext4, reiserfs ou btrfs
  • Le script n'installera pas de gestionnaire d'amorçage, c'est à vous de l'installer
  • L'installation de NuTyX se fait toujours sur une partition unique, si vous souhaitez séparer certains dossier /home, /var, etc, veuillez le faire après l'installation de NuTyX
  • Le script ne crée pas d'utilisateur, seul le compte root est activé. Vous pouvez utiliser la commande nu une fois NuTyX installé.
  • Si toutes ces conditions sont remplies, vous téléchargez le script depuis la page de téléchargement. Ouvrez un terminal en root et tapez:

     [ ~ ] bash install-sekong.ash /dev/sda3 reiserfs fr_FR

    L'installation commence directement. Veuillez ajuster la disposition du clavier au vôtre. Si vous installez depuis NuTyX, le clavier peut être omis, le script prendra celui défini par la NuTyX host.

    Si la disposition de votre clavier n'est pas reconnue par le script, vous pouver utiliser la variable KEYMAP pour le spécifier. Exemple:

     [ ~ ] KEYMAP=slovene bash install-sekong.ash /dev/sda3 reiserfs

    Si vous avez votre propre dépot de paquets binaire, vous pouvez spécifier l'URL du dépot en utilisant la variable URL. Le même miroir sera utilisé une fois NuTyX installée.

     [ ~ ] URL="http://192.168.1.1/NuTyX/" bash install-sekong.ash /dev/sda3 reiserfs fr_FR

    Il faut savoir que si vous avez un média inséré dans le lecteur avec les dépots des paquets NuTyX (par exemple un liveCD ou une iso de base), le script identifiera le media et l'utilisera comme source de dépot. Cela peut vous paraître idiot, mais dans le cas de l'installation d'une NuTyX chroot, c'est évidement très pratique car l'install se fait en moins de 5 minutes.

    4. Le gestionnaire de paquets

    4.1. pkg-get pour la gestion des paquets binaires et de leurs dépendances

    L'application pkg-get est l'application pour la gestion des paquets binaires et de leurs dépendances. Les options sont dans la mesure du possible identique aux options utilisées par la commande prt-get. La commande pkg-get trouve son information dans 6 fichiers se trouvant dans le dossier où sont stockés les paquets binaires. Les fichier sont PKGREPO, PKGDEPS, PKGINST , PKGREPO, PKGBUILDS et PKGFILES. La première fois que l'on souhaite utiliser la commande pkg-get, il faut synchroniser les informations locales avec celles du mirroir choisi. Pour cela on utilisera la commande pkg-get avec l'option sync. Exemple:

    [ ~ ] pkg-get sync
    /srv/NuTyX/release/PKGREPO                                                                [  OK  ]
    /srv/NuTyX/release/PKGINST                                                                [  OK  ]
    /srv/NuTyX/release/PKGREAD                                                                [  OK  ]
    /srv/NuTyX/release/PKGGRP                                                                 [  OK  ]
    /srv/NuTyX/release/PKGDEPS                                                                [  OK  ]
    /srv/NuTyX/release/PKGFILES.gz                                                            [  OK  ]
    /srv/NuTyX/release/PKGBUILDS.gz                                                           [  OK  ]
    [ ~ ] 

    Utilisez l'option help pour connaître toutes les options possibles de pkg-get.

    4.1.1. Installation d'un paquet binaire et de ses dépendances

    La commmande pkg-get avec l'option depinst téléchargera et installera le paquet passé en argument ainsi que tous les paquets dont il dépend. Contrairement à pkgmk il n'est pas nécessaire d'être dans le dossier du paquet que l'on souhaite installer, il faut juste être en root. Exemple:

    [ ~ ] pkg-get depinst curl
     1: Télécharge le(s) paquet(s) 
    
    /srv/NuTyX/release/libidn#1.19-1.pkg.tar.xz                                               [  OK  ]
    /srv/NuTyX/release/curl#7.21.7-2.pkg.tar.xz                                               [  OK  ]
    
      2: Installe le(s) paquet(s) 
    
    Installe libidn                                                                           [  OK  ]
    Installe curl                                                                             [  OK  ]
    
      3:Résumé 
    
    Success
    
    [ ~ ] 

    4.1.2. Mettre à jour un ou plusieurs paquets binaires

    Si l'on souhaite connaître les binaires à mettre à jour, on utilisera pkg-get avec l'option diff. Exemple:

    [ ~ ] pkg-get diff
    Différences entre paquets installés et paquets disponibles dans les dépots
    
    Paquet              Installé            Disponible dans le dépot
    
    chromium            5.0.375.125-1       5.0.375.127-1      
    initrd              2.6.34.2-2          2.6.34.5-1         
    iproute2            2.6.33-1            2.6.35-1           
    kernel              2.6.34.2-1          2.6.34.5-1         
    ktsuss              1.4-3               1.4-4              
    libarchive          2.8.3-1             2.8.3-2            
    pkg-get             0.5.0-1             0.5.1-1            
    ports               1.5-5               1.5-6              
    prt-get             5.16-4              5.18-2             
    xz-utils            4.999.9beta-1       4.999.9beta-143-g3e49-1
    [ ~ ]
    

    Maintenant si l'on souhaite mettre tous les ports à jour avec une seule commande.

    [ ~ ] pkg-get sysup
    

    Tous les paquets à mettre à jour seront mis à jour.

    4.1.3. Fichiers de configuration de pkg-get

    4.1.3.1 /etc/pkg-get.conf

    Ce fichier spécifie:

  • pkgdir /srv/NuTyX/release|http://miroir1.nutyx.org/sekong/x86_64/release dossier de stockage des paquets binaires téléchargés et adresse URL du mirroir à utiliser
  • runscripts yes spécifie si pkg-get doit exécuter les scripts pre et post-install.
  • base: base:aaabasicfs,pkgutils,glibc,zlib,binutils,gmp,mpfr,...
  • liste des paquets necessaires pour revenir sur une NuTyX de base.

    4.2. Autres options bien utiles de pkg-get

    4.2.1. Connaître la liste des paquets installés

    Pour connaître la liste des paquets installé, l'option listinst est utilisée:

    [ ~ ] pkg-get listinst
    Liste des paquets installés:
    
    aaabasicfs                     2011-4     Système de base de NuTyX, contient les répertoires et scripts de demarrage.
    autoconf                       2.68-1     Permet la production de scripts pouvant configurer automatiquement le code source
    ...
    zlib                           1.2.5-1    Librairie de compression/décompression
    
    86 Paquets installés
    [ ~ ]
    

    4.2.2. Connaître la liste des paquets disponibles sur le dépot

    Et si l'on souhaite connaître les paquets disponibles sur le dépot, l'option list sera utilisée:

    [ ~ ] pkg-get list
    Liste des paquets disponibles sur le dépot:
    
    a2ps                           4.14-1     Convertisseur ASCII vers Postscript
    aaabasicfs                     2011-4     Système de base de NuTyX, contient les répertoires et scripts de demarrage.
    aalib                          1.4rc5-2   Librairie pour le rendu de graphismes en mode ascii
    ...
    zope-interface                 3.6.1-1    Addon pour zope
    zsh                            4.3.10-1   shell pour un usage interactif et langage puissant de script.
    
    1132 Paquets disponibles
    [ ~ ]
    

    4.2.3. Obtenir les détails d'information sur un paquet

    Il est possible tous les détails sur un paquet (installé ou non) en utilisant l'option info:

    [ ~ ] pkg-get info kernel
    Nom         : kernel
    Paquet      : /srv/www/htdocs/nutyx/release/kernel#3.2.10-1.pkg.tar.xz
    Description : Le kernel avec les modules nvidia, ati, broadcom et virtualbox
    URL mirroir : http://nutyx.meticul.eu/sekong/x86_64/release/kernel%233.2.10-1.pkg.tar.xz
    URL sources : http://www.kernel.org
    Mainteneur  : Linus Torvalds, Greg Kroah-Hartman and many more
    Empaqueteur : thierryn1 at hispeed dot ch, tyrry33 at gmail dot com
    Taille      : approx. 62 MBytes (62485144 octets)
    Somme MD5   : 208d6e6575a832a0e5ae22309c8f91bd [local copy OK]
    Version     : 3.2.10-1
    Fichiers    : pre-install post-install README
    Le paquet kernel 3.2.7-2 est installé.
    [ ~ ]
    

    Comme on peut le voir dans l'exemple ci-dessus, sont affichés: le nom du paquet, le nom du fichier du paquet, la description, l'URL du mirroir, l'URL des sources, le(s) mainteneur(s) du projet, l'empaqueteur(s), la taille du paquet (empaqueté), la signature md5sum, la version du paquet et si le paquet contient des scripts de pré, post install ains qu'un readme. Pour lire le README du paquet, on utilisera l'option readme> suivi du nom du paquet:

    [ ~ ] pkg-get readme kernel
    Pour la construction du kernel il est necessaire d'avoir git et prt-get
    d'installé.
    [ ~ ]
    

    Et enfin si l'on souhaite connaître la recette de fabrication d'un paquet, on utilise l'option cat suivi du nom du paquet:

    [ ~ ] pkg-get cat kdeadmin
    # Description: programmes pour gérer les utilisateurs, initialisation de fichiers, programateur de taches, et connections réseaux pour KDE
    # URL: http://www.kde.org
    # Maintainer: KDE Project : https://projects.kde.org/projects/kde
    # Packager: lesibel at free dot fr
    # Depends on: cmake,automoc4,kdelibs,kdepimlibs,pykde4,system-config-printer,libcups
    # Run on: kdelibs,kdepimlibs,pykde4,system-config-printer,libcups
    
    name=kdeadmin
    version=4.8.1
    release=1
    source=( ftp://ftp.kde.org/pub/kde/stable/$version/src/$name-$version.tar.bz2)
    
    build() {
            cd $name-*
            mkdir build
            cd build
            cmake ../ -DCMAKE_INSTALL_PREFIX=/usr \
                    -DCMAKE_BUILD_TYPE=Release \
                    -DCMAKE_SKIP_RPATH=ON \
                    -DKDE_DEFAULT_HOME=.kde \
                    -DSYSCONF_INSTALL_DIR=/etc \
                    -DPYTHON_EXECUTABLE=/usr/bin/python2 \
                    -DCMAKE_{SHARED,MODULE,EXE}_LINKER_FLAGS='-Wl,--no-undefined -Wl,--as-needed'
    
            make
            make DESTDIR=$PKG install
    }
    [ ~ ]
    

    Pour connaître les dépendances d'un paquet, c'est l'option depends toujours suivi du nom du paquet qui est utilisé:

    [ ~ ]  pkg-get depends glib
    Liste des dépendances pour: glib [i] = installé, [u] mise à jour disponibles
    [i] expat 2.0.1-1
    [ ] glib 2.30.1-2
    [ ~ ]
    

    Si les dépendances sont déjà installées un [i] apparaît devant le nom, si la dépendance peut être mise à jour, un [u] s'affiche devant le nom et [ ] si elle n'est pas encore installée.

    4.2.4. Recherches possibles sur un paquet

    Pour retrouver le nom d'un paquet depuis sa description on peut utiliser l'option search suivi de la chaîne recherchée ou l'option dsearch toujours suivi de la chaîne recherchée. Cette dernière option a l'avantage de rechercher dans les description en plus des noms de paquets:

    [ ~ ]  pkg-get search lxde
    lxde
    lxde-common
    lxde-icon-theme
    [ ~ ] pkg-get dsearch lxde
    lxappearance                   Réglage de l'apparence pour lxde
    lxde                           Bureau X11 très léger basé sur gtk
    lxde-common                    set of default configuration for LXDE
    lxde-icon-theme                Icones pour lxde
    lxdm                           Gestionnaire de sessions très légé (partie de lxde)
    lxlauncher                     launcher pour lxde
    lxpanel                        Panel lxde
    lxsession                      Gestionnaire de session pour lxde
    lxshortcut                     Gestionnaire de raccourcis pour lxde
    lxterminal                     Terminal pour lxde
    menu-cache                     Cache des menus lxde
    [ ~ ]
    

    4.3. Résumé des commandes à connaître pour la gestion des paquets.

    Pour vous simplifier la tâche, toutes les commandes de base à connaître sont des alias:

  • syn Synchronise l'information des binaires. C'est un script utilisant la commande pkg-get sync
  • check Synchronise et affiche les différences.
  • get synchronise, télécharge et installe le paquet.C'est l'alias de pkg-get depinst
  • del efface le paquet. C'est l'alias de pkgrm
  • up met à jour un paquet. C'est l'alias de pkg-get update
  • sysup met à jour tous les paquets. C'est l'alias de pkg-get sysup
  • pkgadd /lechemincomplet/lenomcompletdupaquet.pkg.tar.xz installe le paquet lenomcompletdupaquet.
  • 5. Configuration de NuTyX

    5.1. Les scripts de configuration

    5.1.1. Mode d'initialisation de NuTyX

    Grace au fichier inittab, il est possible de définir la façon de lancer NuTyX, en effet nous disposons de 4 modes d'initialisation:

  • En mode simple utilisateur: init 2
  • En mode console: init 3
  • En mode lxdm, le gestionnaire de session de XFCE: init 4
  • En mode kdm, le gestionnaire de session de KDE: init 5
  • Ces différents modes sont définis dans le fichier inittab. Exemple:

    # Begin /etc/inittab
    # Pour le lancement de la console: id:3
    # Pour le lancement de lxdm:  id:4
    # Pour le lancement de kdm:  id:5
    
    id:5:initdefault:
    ....
    

    Dans cet exemple, ce sera donc le gestionnaire de sesssion de KDE qui sera lancé par défaut.

    5.1.2. Le clavier

    La configuration du clavier se fait à l'aide de 2 fichiers. Le fichier /etc/sysconfig/console définit la disposition du clavier dans une console non graphique. Le fichier /etc/X11/xorg.conf.d/20-keyboard.conf définit la disposition du clavier dans les interfaces graphiques tournant sur le serveur graphique xorg.

    Exemple du fichier console:

    FONT="lat0-16 -m 8859-15"
    UNICODE="1"
    LOGLEVEL=1
    KEYMAP=fr_CH-latin1.map

    La variable KEYMAP est utilisée pour définir la disposition du clavier. Vous trouverez toutes les infos concernant le fichier /etc/sysconfig/console sur le site de linuxfromscratch.

    Exemple du fichier 20-keyboard.conf:

    Section "InputClass"
    	Identifier      "Generic Keyboard"
    	Driver          "evdev"
    	Option          "CoreKeyboard"
    	Option          "XkbRules"      "xorg"
    	Option          "XkbModel"      "pc105"
    	Option	"XkbLayout"	"ch"
    	Option	"Xkbrules"	"xorg"
    	Option	"XkbVariant"	"fr"
      Option "XkbOptions" "grp:alt_shift_toggle"
    EndSection

    Vous trouverez beaucoup d'information sur le net concernant les possibilités de configuration du fichier /etc/X11/xorg.conf.d/20-keyboard.conf.

    5.1.3. Le nom de la machine

    La configuration du nom de la machine se trouve dans le fichier /etc/sysconfig/network. On y défini tout simplement la variable HOSTNAME. Pour changer le nom de la machine, le plus simple est d'utiliser la commande echo en root:

    [ ~ ] echo "HOSTNAME=MaMachineNuTyX" > /etc/sysconfig/network
    

    Le nom de la machine s'appelle désormais MaMachineNuTyX.

    5.2. Le réseau

    Si vous utilisez NuTyX de base, la configuration du réseau se fait via le fichier de configuration /etc/sysconfig/network-devices/ifconfig.eth0/dhcpcd. Il n'y a pas grand chose à configurer mais si malgré tout vous souhaitez connaître toutes les possibilités du fichier, vous trouverez les informations sur le site de BLFS

    Si vous avez choisi d'utiliser l'une des interfaces graphique, la configuration du réseau est configurée par défaut via l'interface wicd.

    5.2.1. Spécifier une adresse statique

    Si vous souhaitez configurer une adresse statique sur NuTyX, vous avez 2 solutions:

  • Via l'application wicd
  • En utilisant le script de configuration se trouvant dans /etc/sysconfig/network-devices/ifconfig.eth0
  • Exemple de fichier /etc/sysconfig/network-devices/ifconfig.eth0/ipv4:

    ONBOOT=yes
    SERVICE=ipv4-static
    IP=192.168.1.1
    GATEWAY=192.168.1.2
    PREFIX=24
    BROADCAST=192.168.1.255

    Vous trouverez toutes les infos concernant la configuration d'une adresse statique sur le site de linuxfromscratch.

    5.2.2. Configurer le service SSH pour accéder NuTyX à distance

    Pour pouvoir accéder NuTyX via le protocole de connection shell sécurisée (SSH), il est nécessaire de configurer le fichier de configuration /etc/hosts.allow. Le minimum nécessaire pour que l'accès soit possible est d'y spécifier:

    sshd: ALL
    

    Il est cependant préférable de spécifier un filtre minimum.

    5.3. Amorçage de la machine

    L'amorçage de la machine se fait via l'utilitaire GRUB. Le fichier de configuration est le fichier /boot/grub/menu.lst. Ce fichier permet de spécifier quel système d'exploitation la machine doit amorcer. Dans le cas de NuTyX, la configuration est très simple.

    title NuTyX PAKXE 2.6.35 sur /dev/sda5
    root (hd0,4)
    kernel /boot/kernel root=/dev/sda5 ro quiet vga=791
    

    Pour lancer le système de maintenance, il suffit de supprimer la variable root=/... et d'ajouter la ligne qui spécifiera l'initrd. Par exemple:

    title NuTyX système de maintenance PAKXE 2.6.35 sur /dev/sda4
    root (hd0,4)
    kernel /boot/kernel ro quiet vga=791
    initrd /boot/nutyx-initrd
    

    5.4. Résolution graphique

    5.4.1. Pilotes standards libre de xorg.freedesktop.org

    Lorsque vous installez le paquet xorg. les pilotes graphique seront installés pour les cartes graphiques suivante

  • ati
  • geode
  • intel
  • i128
  • radeonhd
  • vmware
  • nv
  • vesa
  • xgi
  • Si vous utilisez une autre carte graphique, il sera nécessaire d'installer le pilote adéquat dont la liste est disponible sur le site.

    6. Fonctionnement de NuTyX

    6.1. Introduction.

    Lorsque vous achetez un produit, on vous fournit un mode d'emploi. Ce qui est plus rare, c'est que l'on vous explique comment il fonctionne. Dans le cas d'un système d'exploitation où tout est libre d'accès, il semble donc normal et très utile d'en connaître les mécanismes internes. Ce chapitre détaille les arcanes de NuTyX. Notez que certaines explications sont également valables pour d'autres distributions.

    6.2. Historique..

    LFS (LinuxFromScratch) est le moyen le plus pédagogique pour apprendre le fonctionnement d'un système d'exploitation libre utilisant GNU/Linux comme base. C'est ce côté pédagogique qui m'a vraiment plu et m'a décidé à me lancer dans l'aventure. Si on lit la documentation de LFS, tout est clair et très très bien expliqué. Je tiens à remercier encore une fois l'équipe canadienne qui maintient le site LFS pour notre plus grand bonheur.

    6.3 Initialisation de NuTyX

    Ca y est votre NuTyX est installée, il est temps de démarrer votre nouvelle installation NuTyX. Nous allons voir que la mise en route de NuTyX se fait en 3 étapes:

  • L'amorçage de la machine
  • Le noyau et L'initrd
  • Les scripts d'initialisation
  • 6.3.1. Amorçage de la machine.

    Si l'installation s'est faite correctement et depuis le média, le premier écran que vous voyez au démarrage du système est le menu du programme d'amoçage GRUB. Le premier choix est votre NuTyX fraîchement installée. On peut voir que l'installateur de GRUB a pris soin de préciser le système de fichiers utilisé et la partition utilisée. Si le système ne démarre pas ou se comporte de façon anormale, en deuxième choix, vous pouvez démarrer le système de maintenance. Ce choix de menu démarre une NuTyX qui se charge entièrement en mémoire vive. Une fois démarrée, vous pourrez effectuer toutes sortes de manipulations qui seront expliquées dans un chapitre dédié. Pour le moment, nous supposons que votre NuTyX est correctement installée.

    Pour que GRUB puisse démarrer NuTyX, il doit connaître le disque, la partition, le système de fichiers de celle-ci. Le grand intérêt de GRUB est qu'il est capable de gérer des changement de configuration de menu sans devoir être réinstallé. Il dispose également de son propre langage de programmation avec lequel on configure et installe les fichiers de GRUB.

    Si l'application GRUB est installée sur une partition dédiée, vous aurez la chance de ne plus jamais devoir le réinstaller. Le grand intérêt de GRUB (à condition que vous ne touchez plus jamais à la partition sur laquelle GRUB est installée), c'est qu'il est capable de gérer des changements de configuration de son menu et donc de pouvoir ajouter/supprimer des partitions sur lequelles vous pouvez ajouter supprimer des systèmes d'exploitation. La seule chose à faire est de mettre à jour le menu.lst. Les fichiers nécessaires au bon fonctionnement de GRUB sont (par ordre de lancement):

  • la procédure d'amorçage se trouvant dans le MBR et donc invisible dans la liste des fichiers mais néanmoins indispensable au lancement de votre NuTyX. Elle se trouve géographiquement au début du premier secteur du disque dur qui est utilisé pour l'amorçage de la machine. Pour information, ce secteur contient également les informations sur la taille et le nombre de partitions définies sur le même disque dur.
  • le fichier stage1 est lancé par la procédure de d'amorçage, sa taille fait exactement 512 octets. En fonction du système de fichiers utilisé par la partition d'amorçage, il appellera le xxx_stage1_5 correspondant.
  • les fichiers e2fs_stage1_5, fat_stage1_5, ffs_stage1_5, iso96690_stage1_5, minix_stage1_5, reiserfs_stage1_5, ufs2_stage1_5, xfs_stage1_5: en fonction du système de fichiers utilisé par la partition d'amorçage, le fichier correspondant sera lancé. Ce qui veut dire que si vous êtes limités en taille de partition, rien ne vous empêche de supprimer les autres fichiers xxx_stage1_5 qui ne seront jamais utilisés
  • le fichier stage2 qui est le fichier principale de GRUB contenant l'interpréteur de commandes et se charge de lancer le noyau et de son initrd éventuel
  • 6.3.2. Le noyau

    GRUB est maintenant amorcé et vous présente le premier menu, vous choisissez de lancer NuTyX ou le système de maintenance. GRUB lance maintenant le noyau (en anglais kernel). Le kernel est le coeur du système d'exploitation, il gère toutes les fonctions vitales au bon fonctionnement de la machine c'est à dire la gestion de la mémoire, les accès au disque dur, les processus, etc etc etc. Le kernel effectue la majorité des tâches dans la machine, autant dire qu'il est indispensable et important qu'il soit fonctionnel. Pourtants'il fonctionnait seul, on ne pourrait pas faire grand chose avec la machine. Une fois amorcée et en service, il va lancer un fichier bien spécifique qui s'appelle init et se trouve dans le dossier /sbin. Le fichier /sbin/init est donc la première application NuTyX à être lancée par le kernel et provient du paquet sysvinit. Comme le manuel l'explique, c'est le parent de tous les processus. Son rôle primaire est de lancer les processus définis dans le fichier /etc/inittab. Nous reparlerons de ce fichier plus tard.

    6.3.3. L'initrd

    Si vous avez choisi de lancer le système de maintenance lors du choix au premier menu, la procédure d'amorçage est un peu différente. Si on compare les choix d'amorçage dans le menu.lst, la ligne spécifiant le kernel est presque identique dans les 2 cas. La seule différence entre le système de maintenance et NuTyX c'est que pour la maintenance, on ne définie pas de variable root=/dev/sdX. Le système de maintenance se trouve dans un fichier appelé initrd. GRUB est capable de charger ce fichier en mémoire pour permettre au kernel de "se connecter" au système contenue dans l'initrd. Exemple de définition utilisé par grub pour lancer le système de maintenance, extrait du fichier menu.lst.
    # The first entry is for System Maintenance.
    title Maintenance de NuTyX 
    root (hd0,0)
    kernel /kernel ro quiet vga=791
    initrd /nutyx-initrd
    
    Il y a 2 autres lignes très importantes à analyser:

  • root (hd0,0): Cette ligne spécifie sur quel disque et sur quel partition se trouvent les kernel et initrd à lancer. La notation est la suivante: hd0, hd1, hd2, etc signifie le disque 1,2,3 cad /dev/sda, /dev/sdb, /dev/sdc et le 0 signifie la première partition, 1 la deuxième etc. Dans cet exemple: GRUB doit charger les kernel et initrd se trouvant sur la première partition du disque /dev/sda cad /dev/sda1
  • initrd: Cette ligne spécifie le fichier initrd à charger en mémoire. Ensuite le kernel s'y connecte.
  • Le procéssus d'amorçage est identique, une fois lancé, le kernel va lancer le fichier /sbin/init qui se trouve dans l'initrd. Ce fichier n'étant pas le même et ne provenant pas du paquet sysvinit mais de busybox. Il va exécuter le fichier /etc/init.d/rcS. Cette methode est différente de celle utilisé par NuTyX et est définie ainsi par les développeurs de busybox. rcS étant un lien au fichier /init, tout est définie et tout se passe dans ce fichier.

    6.3.4. Les scripts d'initialisation

    Nous avons vu que le noyau, une fois initialisé, exécute le fichier /sbin/init qui à son tour lance les différents scripts et applications spécifiés dans le fichier /etc/inittab dans un ordre bien précis. Commençons donc par analyser le contenu de /etc/inittab:
    # Begin /etc/inittab
    # Pour le lancement de la console: id:3
    # Pour le lancement de lxdm:  id:4
    # Pour le lancement de kdm:  id:5
    
    id:5:initdefault:
    
    si::sysinit:/etc/rc.d/init.d/rc sysinit
    
    l0:0:wait:/etc/rc.d/init.d/rc 0
    l1:S1:wait:/etc/rc.d/init.d/rc 1
    l2:2:wait:/etc/rc.d/init.d/rc 2
    l3:3:wait:/etc/rc.d/init.d/rc 3
    l4:4:wait:/etc/rc.d/init.d/rc 4
    l5:5:wait:/etc/rc.d/init.d/rc 5
    l6:6:wait:/etc/rc.d/init.d/rc 6
    
    ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now
    
    su:S016:once:/sbin/sulogin
    
    1:2345:respawn:/sbin/agetty tty1 9600
    2:2345:respawn:/sbin/agetty tty2 9600
    3:2345:respawn:/sbin/agetty tty3 9600
    4:2345:respawn:/sbin/agetty tty4 9600
    5:2345:respawn:/sbin/agetty tty5 9600
    6:2345:respawn:/sbin/agetty tty6 9600
    
    
    20:4:respawn:/usr/sbin/lxdm >& /dev/null
    
    30:5:respawn:/usr/bin/kdm
    
    
    # End /etc/inittab
    Toutes lignes commençant par le symbole # sont des commentaires. Chaque ligne est constituée de plusieurs champs séparés par le symbole :.Le premier champ est une étiquette qui doit être unique. Le deuxième champ spécifie le numéro d'init. Le troisième champ spécifie le type d'action à effectuer sur la commande spécifiée en quatrième champ. La première ligne de code est l'exeption à la règle:
    id:5:initdefault:
    spécifie dans quel numéro d'init NuTyX doit fonctionner. La commande /sbin/init est sans doute la seule commande linux qui voit son comportement changer en fonction du numéro de processus que le kernel lui attribue. En effet si vous exécutez la commande en root, vous n'allez pas initialiser depuis zéro votre machine mais plutôt faire basculer la machine dans le numéro que vous avez passez en argument. Par exemple, la commande:
    init 3
    fera passer la machine en init 3.

    La deuxième ligne de code
    si::sysinit:/etc/rc.d/init.d/rc sysinit
    va donc être exécuté lors de l'amorçage de NuTyX c'est à dire quand le numéro d'init n'est pas encore défini. C'est donc en toute logique que le deuxième champ n'est pas concerné. Tous les scripts d'initialisation sont situés sous le dossiers /etc/rc.d/init.d/la commande qui sera donc exécutée est
    /etc/rc.d/init.d/rc sysinit
    Le fichier /etc/rc.d/init.d/rc va exécuter tous les fichiers qui se trouvent dans le dossier spécifié en argument. Pour l'argument sysinit, ce seront les fichiers placé dans le dossier /etc/rc.d/rcsysinit.d L'astuce c'est que dans ce dossier, ce sont tout des liens qui se réfèrent aux scripts situés dans le dossier des scripts /etc/rc.d/init.d/.
    lrwxrwxrwx  1 root root  21  4 jui 16:44 S01mountkernfs -> ../init.d/mountkernfs
    lrwxrwxrwx  1 root root  20  4 jui 16:44 S02consolelog -> ../init.d/consolelog
    lrwxrwxrwx  1 root root  17  4 jui 16:44 S05modules -> ../init.d/modules
    lrwxrwxrwx  1 root root  14  4 jui 16:44 S10udev -> ../init.d/udev
    lrwxrwxrwx  1 root root  18  4 jui 16:44 S15setclock -> ../init.d/setclock
    lrwxrwxrwx  1 root root  18  4 aoû 08:37 S19lvmnodes -> ../init.d/lvmnodes
    lrwxrwxrwx  1 root root  17  4 jui 16:44 S20checkfs -> ../init.d/checkfs
    lrwxrwxrwx  1 root root  17  4 jui 16:44 S30mountfs -> ../init.d/mountfs
    lrwxrwxrwx  1 root root  14  4 jui 16:44 S40swap -> ../init.d/swap
    lrwxrwxrwx  1 root root  17  4 jui 16:44 S45cleanfs -> ../init.d/cleanfs
    lrwxrwxrwx  1 root root  20  4 jui 16:44 S50udev_retry -> ../init.d/udev_retry
    lrwxrwxrwx  1 root root  17  4 jui 16:44 S70console -> ../init.d/console
    lrwxrwxrwx  1 root root  18  4 jui 16:44 S80localnet -> ../init.d/localnet
    lrwxrwxrwx  1 root root  16  4 jui 16:44 S90sysctl -> ../init.d/sysctl
    
    Lorsque le script rc a terminé d'exécuter tous les scripts spécifiés dans le dossier /etc/rc.d/rcsysinit.d/, comme le montre l'exemple d'inittab ci-dessus la commande init va exécuter dans l'ordre les lignes dont le deuxième champ contient le chiffre 5 c'est à dire les 2 lignes suivantes:
    l5:5:wait:/etc/rc.d/init.d/rc 5
    30:5:respawn:/usr/bin/kdm
    Il va donc exécuter les scripts spécifiés dans le dossier /etc/rc.d/rc5.d:
    lrwxrwxrwx 1 root root 18  4 jui 16:44 S10sysklogd -> ../init.d/sysklogd
    lrwxrwxrwx 1 root root 18  7 aoû 08:37 S19iptables -> ../init.d/iptables
    lrwxrwxrwx 1 root root 14 31 jui 11:03 S20dbus -> ../init.d/dbus
    lrwxrwxrwx 1 root root 17  4 jui 16:44 S20network -> ../init.d/network
    lrwxrwxrwx 1 root root 19 19 jui 14:39 S21haldaemon -> ../init.d/haldaemon
    lrwxrwxrwx 1 root root 17  7 jun 18:02 S22portmap -> ../init.d/portmap
    lrwxrwxrwx 1 root root 20 19 jun 18:28 S24nfs-server -> ../init.d/nfs-server
    lrwxrwxrwx 1 root root 14 10 aoû 10:32 S25cups -> ../init.d/cups
    lrwxrwxrwx 1 root root 18  6 jui 18:01 S25openldap -> ../init.d/openldap
    lrwxrwxrwx 1 root root 16  4 jui 16:44 S25random -> ../init.d/random
    lrwxrwxrwx 1 root root 15  7 jun 18:02 S28netfs -> ../init.d/netfs
    lrwxrwxrwx 1 root root 14  8 jun 17:56 S30sshd -> ../init.d/sshd
    lrwxrwxrwx 1 root root 15 13 jui 13:12 S45samba -> ../init.d/samba
    lrwxrwxrwx 1 root root 17 13 jui 13:12 S50winbind -> ../init.d/winbind
    lrwxrwxrwx 1 root root 13  4 jui 16:44 S70gpm -> ../init.d/gpm
    et pour terminer la commande init lancera le gestionnaire de connection de KDE, le fichier /usr/bin/kdm. Il y a une raison bien précise au choix d'utiliser des liens:
  • ça évite de devoir copier les scripts dans les différents dossiers rc2.d, rc3.d, rc4.d et rc5.d,
  • pour désactiver un service il suffit de supprimer le lien.
  • 6.4. Le système de maintenance

    6.4.1. Introduction

    Vous avez sans doute remarqué que lorsque votre système d'exploitation NuTyX démarre, vous avez la possibilité de lancer le système de maintenance : A quoi peut-il bien servir ? Il faut savoir que le système de maintenance peut faire exactement la même chose que l'iso de base.

  • Installer NuTyX
  • Supprimer un, plusieurs out tous les paquets de votre NuTyX
  • Installer et activer l'amorçage de la machine via l'application GRUB
  • Monter un dossier de partage windows accessible
  • Monter un dossier de partage nfs accessible
  • Créer une image iso d'une NuTyX préalablement installée transférable sur clé USB ou DVD
  • Monter la partition NuTyX pour y faire de la maintenance
  • Monter une partition NTFS (en lecture) ou FAT
  • Sauvegarder les données d'un dossier
  • Reconfigurer la disposition du clavier de la NuTyX installée
  • Lancer directement NuTyX installée en dur (le fameux "zéro reboot")
  • ImportantAVERTISSEMENT

    Soyez très prudent avec cette fonctionnalité. Vous pouvez en effet tout casser et tout réinstaller sans avoir besoin du mot de passe de l'administrateur de la machine (root). Ce qui veut dire que si cela vous semble dangereux ou que vous êtes dans un endroit où d'autres personnes peuvent accéder à votre machine, la meilleure chose à faire est d'activer un mot de passe au démarrage de la machine (GRUB) et/ou au lancement du bios (cette opération se fait dans le bios). Pensez également à désactiver le boot depuis le DVD et depuis le support externe.

    Si cette fonctionnalité vous semble excessive voire trop permissive, il suffit de supprimer le fichier /boot/nutyx-initrd et de supprimer la ligne initrd dans le fichier de configuration de GRUB /boot/grub/menu.lst en se basant sur l'exemple-ci dessous.

    # Begin /boot/grub/menu.lst 
    # By default boot the first menu entry. 
    default 0 
    
    # Allow 10 seconds before booting the default. 
    timeout 10 
    
    # Use prettier colors. 
    color green/black light-green/black 
    
    # Le superbootsplash 
    gfxmenu (hd0,0)/boot/message 
    
    # The second entry is the first production one 
    title NuTyX
    root (hd0,0)
    kernel /boot/kernel root=/dev/sda1 ro quiet 
    
    # The third entry is for eventually Windows boot 
    title Windows 
    rootnoverify (hd0,X) 
    chainloader +1 
    

    7. Empaqueter un paquet sous NuTyX

    7.1 Introduction

    Depuis la version pakxe.3, l'outil de gestion des paquets binaires suffit amplement pour un utilisateur lambda qui ne souhaite donc pas trop compiler ses paquets soi-même. Cela signifie que désormais, NuTyX fait mieux la différence entre les paquets binaires et les paquets que l'on souhaite compiler soi-même. Pour pouvoir profiter des outils décrits ci-dessous, commencez par installer les outils de développement.

    [ ~ ] get dev
    
    Tous les paquets binaires nécessaires au développement seront donc installés et vous serez paré pour construire vos propres paquets.

    7.2 Le système de ports

    7.2.1. Qu'est ce qu'un port?

    Le port est un dossier contenant un nombre de fichiers nécessaire pour la construction d'un paquet. La commande pkgmk permet de "construire" le paquet qui sera ensuite installable. Pour être fonctionnel, ce dossier doit contenir au minimum un fichier appelé Pkgfile. C'est grâce à ce fichier que la construction du paquet peut se faire. Le contenu de Pkgfile contient toutes les informations nécessaires pour pouvoir "construire" ou plus exactement compiler le paquet depuis les sources. Les ports officiels de NuTyX contiennent aussi toujours 2 autres fichiers dans le dossier: le .footprint et le .md5sum. Chaque paquet est constitué de fichiers et dossiers, pour s'assurer que la résultat de la compilation soit correct, cad que les fichiers produits par le fichier Pkgfile soient toujours identiques, l'outil compare la liste des fichiers et dossiers produits avec le contenu du fichier .footprint. Ce fichier sert en quelque sorte de signature du paquet. Le fichier .md5sum est sans doute le + important, il garantie que les sources à télécharger aient la bonne somme MD5. De cette façon vous êtes assuré de télécharger les bonnes sources du paquet. Si il y a une différence lors du téléchargement, il est important d'en identifier la raison.

    Le nom port est emprunté du monde BSD où un port réfère à un logiciel "porté" sur un système d'exploitation ou une platforme. Dans notre cas, le port est simplement la définition de la construction d'un paquet.

    7.2.2. Le système de ports

    Le terme système de ports se réfère à un dépot sur internet contenant les ports originaux. Une application client permet de télécharger et mettre à jour ce dépot depuis internet. Les utilisateurs NuTyX utilisent l'utilitaire ports(8) pour télécharger les ports depuis le dépot et ils sont stockés dans le dossier /usr/ports/. L'utilitaire utilise la commande rsync pour le téléchargement/synchronisation des ports.

    7.2.3. Les collections de ports

    Les ports de NuTyX sont organisés en collections. Nous trouvons deux groupes collections: les collections officielles et publiques

    7.2.3.1 La collection officielle

    Dans la collection officielle, nous trouvons:

    La base: Cette collection contient tous les ports installés par un système de base.

    La collection extra contient toutes les applications pour le bon fonctionnement d'une interface graphique.

    7.2.3.2 Les collections publiques

    Des collections publiques sont désormais disponible. Ces ports sont proposé par la communautée de contributeurs. Les ports peuvent être intégré dans NuTyX en activant le fichier de configuration adéquoit.

    7.2.4. Utilisation des ports

    7.2.4.1. Synchronisation des ports

    Lorsque vous installez NuTyX, la structure des ports est également installée. Après un certain temps, il est temps de mettre à jour la structure locale avec le dépot à distance. On utilise en root la commande ports avec l'option -u. La commande ci-dessous:

    [ ~ ] ports -u

    L'option -u signifie mettre à jour la liste et demande à ports de contacter le dépot et télécharger et/ou mettre à jour les ports. La sortie ressemble à ceci:

    Updating file list from downloads.nutyx.org::ports/nutyx-sekong/base/
    Updating collection base
    ...
    ....
    ...
    
    Finished successfully
    Updating file list from downloads.nutyx.org::ports/nutyx-sekong/extra/
    Updating collection base
    ..
    ..
    ..
    
    
    Finished successfully
    

    La sortie montre les fichiers téléchargés, mis à jour ou effacés.

    7.2.4.2. Afficher les ports

    Pour afficher le contenu de la structure des ports et trouver ce qui est disponible, il suffit d'aller dans un des dossiers et de lister son contenu par exemple:

    [ ~ ] cd /usr/ports/base
    [ /usr/ports/base ] ls
    aaabasicfs     dosfstools    hdparm              libarchive    liboil             netcdf          
    abook          doxygen       hicolor-icon-theme  libart_lgpl   libopendaap        net-tools       rpm2targz
    antiword       dropbear      htop                libattr       libpcap            noip            
    audiofile      dvd+rw-tools  httrack             libburn       libpng             nspr            rt2x00-rt61-fw
    autoconf       e2fsprogs     hunspell            libcdaudio    libraw1394         ntfs-3g         
    automake       ed            hyphen              libcdio       libsidplay         nutyxman        sed
    b43-fwcutter   eina          iana-etc            libdaemon     libsigc++          opensp          
    babl           eject         inetutils           libdatrie     libsigsegv         openssh         shadow
    bash           elinks        initrd              libdca        libtasn1           openssl         
    bc             ethtool       initrd-lts          libdvbpsi     libtirpc           p5-alien        splashy
    beecrypt       expat         initrd-pae          libdvdcss     libtool            p5-anyevent     squashfs
    bin86          faad2         iproute2            libebml       libtool226         p5-archive-zip  sudo
    bind-utils     fakeroot      iptables            libelf        libusb             p5-date-manip   swig
    binutils       fam           ipw2100-fw          libev         libusb1            p5-exiftool     sysfsutils
    bison          fcron         ipw2200-fw          libevent      libv4l             p5-html-parser  sysklogd
    blas           file          irssi               libexif       libvisual          p5-html-tagset  sysvinit
    boehm-gc       findutils     iwlwifi-3945-ucode  libfame       libvncserver       p5-uri          tar
    bogofilter     flashplayer   iwlwifi-4965-ucode  libffi        libxdg-basedir     p5-xml-simple   tcl
    btrfs-progs    flex          iwlwifi-5000-ucode  libgadu       libxmi             p5-xml-writer   tcp_wrappers
    busybox        freetype      iwlwifi-5150-ucode  libggz        libzip             p5-yaml         texinfo
    bwm-ng         fuse          jade                libical       links              p7zip           tidyhtml
    bzip2          gavl          jam                 libiconv      lm_sensors         patch           tla
    cabextract     gawk          jdk                 libid3tag     lucene             pciutils        udev
    cdparanoia     gcc           jfsutils            libidn        lvm2               pcre            units
    cdrdao         gcc-fortran   joe                 libiodbc      lynx               perl            unixodbc
    chmlib         gdbm          john                libixp        m4                 physfs          unrar
    clamav         gettext       kbd                 libjbig       madwifi            pkg-config      unzip
    coreutils      glib          kerberos            libjpeg       make               pkg-get         util-linux-ng
    cpio           glib1         kernel              libmad        man-db             pkgutils        vim
    cryptsetup     glibc         kernel-2.6.35       libmikmod     mc                 popt            virtuoso
    ctags          gmm           kernel-pae          libmodplug    mdadm              portmap         wavpack
    cvs            gmp           kernel-pae-2.6.35   libmowgli     mmsrip             ports           wget
    db             gnet          kqemu               libmpc        module-init-tools  procps          whois
    dbh            gpm           ladspa              libmpdclient  mpfr               protobuf        xfsprogs
    device-mapper  grep          lame                libmpeg2      mtools             prt-get         xz-utils
    dhcpcd         groff         less                libmysql      nano               psmisc          yasm
    dialog         gsl           liba52              libmythes     nanoblogger        qingy           zip
    diffutils      guile         libacpi             libnl         nasm               readline        zlib
    directfb-1.0   gzip          libaio              libogg        ncurses            reiserfsprogs

    Vous pouvez également utiliser ports avec l'option-l pour lister tous les ports trouvés localement. Par exemple:

    [ ~ ] ports -l
    base/aaabasicfs
    base/abook
    base/antiword
    base/audiofile
    base/autoconf
    base/automake
    base/b43-fwcutter
    base/babl
    base/bash
    ....
    

    Si vous cherchez un paquet spécifique, une des approches pourrait être:

    [~] ports -l | grep wifi 

    Vous devriez obtenir tous les ports contenant la chaîne wifi et dans quel categorie il est localisé.

    7.2.4.3. Différencier les versions intallées et disponibles

    Pour savoir si la collection de ports contient des paquets différents de ceux installés, vous pouvez utiliser l'option -d. Si des versions différentes existent la sortie de la commande ports -d peut ressembler à ceci:

    Collection       Name            Port                     Installed
    base             aaabasicfs      2010-24082010            2010-04072010
    base             bison           2.4.3-1                  2.4.2-1
    base             initrd          2.6.34.5-1               2.6.34.2-2
    base             iproute2        2.6.35-1                 2.6.33-1
    ....
    

    Encore une fois vous pouvez passer le résultat de la commande à travers un tube à grep pour connaître le résultat d'un paquet spécifique.

    [ ~ ] ports -d|grep phonon

    Si aucune différence n'est trouvée sur votre NuTyX, votre système d'exploitation est donc à jour et ses ports sont synchronisés. Le résultat de la sortie sera simplement:

    [ ~ ] ports -d
    No differences found

    Aucune différence trouvée.

    Maintenant que vous connaissez les bases du fonctionnement des ports, il est temps de savoir comment les construire, etc.

    7.2.5. Fichiers de configuration des ports

    Les ports se synchronisent avec le serveur grâce à un fichier de configuration spécifiant différentes informations:

  • le nom du serveur
  • le chemin complet de la collection sur le serveur
  • le chemin complet de la collection sur la NuTyX
  • Les fichiers de configuration des ports se trouvent dans le dossier /etc/ports/.

    Pour profiter des ports d'une collection publique, il faut un fichier du nom de la collection (ouvert,gnome,etc) avec extension .rsync. Un exemple de fichier de configuration d'une collection, ici la collection publique ouvert:

    host=downloads.nutyx.org
    collection=ports/nutyx-sekong/ouvert/
    destination=/usr/ports/ouvert

    Le nom du fichier s'appelle ouvert.rsync et se trouve donc dans le dossier /etc/ports/. Il suffit de remplacer ouvert par gnome pour synchroniser les ports de la collection gnome. Et enfin pour que la commande prt-get trouve la nouvelle collection, il faut ajouter l'information dans le fichier de configuration.

    7.3. pkgutils le gestionnaire de base des ports et des binaires

    7.3.1. Construction et installation d'un paquet

    Maintenant que vous connaissez le sens d'un port, vous souhaitez certainement savoir comment le construire et l'installer. Il suffit de se rendre dans le dossier du nom du paquet que vous souhaitez installer et utiliser la commande (le script) pkgmk pour le construire et ceci en root. Exemple:

    [ ~ ] cd /usr/ports/base/bison
    [ /usr/ports/base/bison ] pkgmk -d

    L'option -d demande au script de télécharger les sources spécifiées dans le Pkgfile du paquet. Quand le téléchargement est terminé, le paquet sera construit (compilé). Si le paquet est construit sans erreur, vous devriez obtenir un message similaire à ceci

    =======> Building '/tmp/bison#2.4.3-1.pkg.tar.xz' succeeded.
    [ /usr/ports/base/bison ] 

    Félicitations, vous venez de compiler votre premier paquet. Comme vous pouvez le constater le résultat est un fichier dont le nom est composé du nom du paquet+sa version+sa release. Veuillez bien noter que pour l'instant vous avez juste construit le paquet, il n'est pas encore installé. C'est un fichier utilisable par la commande tar mais nous allons utiliser la commande adéquate pour installer le paquet compilé. La commande pour installer le paquet est:

    [ /usr/ports/base/bison ] pkgadd /tmp/bison#2.4.3-1.pkg.tar.xz

    Heureusement, pour nous rendre la vie plus simple le script pkgmk est capable d'installer directement le paquet qu'il vient de compiler

    [ /usr/ports/base/bison ] pkgmk -d -i

    Cette commande téléchargera, compilera et installera le paquet bison

    7.3.2. Mettre à jour un paquet

    Si vous souhaitez mettre à jour un paquet, la procédure est très similaire, vous remplacez l'option -i par l'option -u. Il faut noter que quelque soit la version du port (plus récente ou plus ancienne), vous mettez à jour le paquet avec celui que vous aller compiler.

    [ /usr/ports/base/bison ] pkgmk -d -u

    Pour connaître toutes les options de pkgmk, vous pouvez taper:

    [ ~ ] pkgmk -h
    usage: pkgmk [options]
    options:
      -i,   --install             compile et installe le paquet
      -u,   --upgrade             compile et installe le paquet  (met à jour)
      -r,   --recursive           recherche et compile les paquets de façon récursive
      -d,   --download            télécharge les fichiers sources manquants
      -do,  --download-only       télécharge uniquement les fichiers sources sans compiler
      -eo,  --extract-only        extrait uniquement les source sans construire le paquet
      -utd, --up-to-date          véridie uniquement si le paquet est à jour
      -uf,  --update-footprint    met à  jour la signature du paquet résultant de la dernière compilation
      -if,  --ignore-footprint    compile le paquet en ignorant la signature
      -in,  --ignore-new          compile le paquet en ignorant la nouvelle signature
      -um,  --update-md5sum       met à jour le md5sum
      -im,  --ignore-md5sum       compile le paquet en ignorant le  md5sum
      -cm,  --check-md5sum        vérifie seulement le md5sum
      -ns,  --no-strip            ne réduit pas les binairess ou librairies
      -f,   --force               force la compilation même si le paquet est à jour
      -c,   --clean               supprime le paquet et les sources
      -kw,  --keep-work           garde les dossiers de travail
    	-kl,  --keep-locale         garde les autres locales que celles prédéfinies
      -cf,  --config-file   utiliser un fichier de configuration spécifique
      -v,   --version             affiche uniquement la version 
      -h,   --help                affiche uniquement l'aide
    

    La commande pkgadd avec l'option -u mettra le paquet à jour avec le fichier (et son chemin complet) passé en argument

    [ /usr/ports/base/bison ] pkgadd -u /srv/NuTyX/locale/bison#2.4.3-1.pkg.tar.xz
    [ /usr/ports/base/bison ]

    7.3.3. Supprimer un paquet

    Nous avons vu que la commande pkgadd installe le fichier (le paquet compilé) passé en argument. Si l'on souhaite supprimer un paquet installé, c'est avec la commande pkgrm et le nom du paquet en argument et il faut être en root pour pouvoir supprimer des paquets. Exemple:

    [ ~ ] pkgrm bison
    [ ~ ]
    

    Comme vous pouvez le voir aucune confirmation n'est demandée et aucun message n'est apparu, le paquet bison est pourtant bien supprimé.

    7.3.4. Requête d'informations sur les paquets installés

    La commande pkginfo permet de demander des informations sur les paquets installés. Cette commande utilise trois options possible pour les requêtes d'info sur les paquets installés. L'option -i sans argument affiche la liste des paquets installés. L'option -l affiche la liste des fichiers du nom du paquet passé en argument. L'option -o affiche la liste des paquets auquel appartient le nom du fichier ou du dossier passé en argument. Exemples pour chaque cas de figure:

    [ ~ ]pkginfo -i
    aaabasicfs 2010-09082010
    autoconf 2.65-1
    automake 1.11-2
    bash 4.1-1
    binutils 2.20.1-1
    bison 2.4.3-1
    bzip2 1.0.5-1
    coreutils 8.5-1
    cpio 2.11-1
    ...

    [ ~ ]pkginfo -l bash
    bin/
    bin/bash
    bin/bashbug
    usr/
    usr/share/
    usr/share/info/
    usr/share/info/bash.info.gz
    usr/share/locale/
    usr/share/locale/fr/
    usr/share/locale/fr/LC_MESSAGES/
    usr/share/locale/fr/LC_MESSAGES/bash.mo
    usr/share/man/
    usr/share/man/man1/
    usr/share/man/man1/bash.1.gz
    usr/share/man/man1/bashbug.1.gz

    [ ~ ]pkginfo -o bin/ls
    Package            File
    coreutils          bin/ls
    e2fsprogs          usr/bin/lsattr
    module-init-tools  bin/lsmod
    util-linux-ng      usr/bin/lscpu

    7.3.5. Fichiers de configuration de pkgutils

    7.3.5.1 /etc/pkgmk.conf

    #
    # /etc/pkgmk.conf: pkgmk(8) configuration
    #
    
    export CFLAGS="-O2 -march=i686 -pipe"
    export CXXFLAGS="-O2 -march=i686 -pipe"
    
    # PKGMK_SOURCE_MIRRORS=()
    PKGMK_SOURCE_DIR="/srv/sources"
    # PKGMK_PACKAGE_DIR="$PWD"
    PKGMK_WORK_DIR="/tmp/work"
    # PKGMK_DOWNLOAD="no"
    # PKGMK_IGNORE_FOOTPRINT="no"
    # PKGMK_IGNORE_NEW="no"
    # PKGMK_NO_STRIP="no"
    # PKGMK_WGET_OPTS=""
    PKGMK_COMPRESSION_MODE="xz"
    PKGMK_LOCALES="fr"
    
    # End of file
    Ce fichier configure les options de configuration en fonction de son microprocesseur. Les variables sont:
  • PKGM_SOURCE_MIRRORS=() permet de spécifier des mirroirs pour les sources si celles-ci ne sont pas disponible sur le site d'origine.
  • PKGMK_SOURCE_DIR défini le dossier des sources téléchargées
  • PKGMK_PACKAGE_DIR défini le dossier du paquet compilé, par défaut ce sera le dossier du port
  • PKGMK_WORK_DIR défini le dossier de travail
  • PKGMK_DOWNLOAD si yes, pkgmk télécharge les sources si nécessaire, autrement dis sans devoir spécifier l'option -d
  • PKGMK_IGNORE_FOOTPRINT si yes, pkgmk ignore la signature du port compilé, le footprint ne sera pas vérifié
  • PKGMK_IGNORE_NEW si yes, pkgmk ignore le nouveau footprint
  • PKGMK_NO_STRIP si yes, pkgmk ne supprimera pas les symboles des binaires
  • PKGMK_WGET_OPTS permet de spécifier des options supplémentaire au téléchargement des sources, peut s'avérer utile si on est derrière un serveur proxy
  • PKGMK_COMPRESSION_MODE xz format lzma, bz2 format bzip2, gz format zip
  • PKGMK_LOCALES spécifie la locale à garder
  • >

    7.3.5.1 /etc/pkgadd.conf

    Ce fichier défini les dossiers et/ou fichiers de configuration qui doivent être mis à jour ou non.

    7.4. prt-get pour la gestion des ports et de leurs dépendances

    Comme on vient de le voir, l'application pkgutils permet de gérer de façon très simple les ports et les binaires mais ne permet pas malheureusement la gestion des dépendances. L'application prt-get vient palier à ce manque et permet donc de gérer les paquets et leurs dépendances de façon très transparente. Grâce à prt-get, installer et mettre à jour des paquets et leurs dépendances devient un jeu d'enfant. Je ne vais pas détailler ici toutes les options de prt-get, mais juste vous expliquer comment utiliser la commande pour les manipulations courantes.

    7.4.1. Installation d'un port et de ses dépendances

    La commande prt-get avec l'option depinst installera le paquet passé en argument ainsi que tous les paquets dont il dépend. Contrairement à pkgmk il n'est pas nécessaire d'être dans le dossier du paquet que l'on souhaite compiler, il faut juste être en root. Exemple:

    [ ~ ] prt-get depinst xorg
    prt-get: installing /usr/ports/base/expat
    ....
    prt-get: installing expat 2.0.1-1
    prt-get: installing /usr/ports/xorg/libpthread-stubs
    ...
    prt-get: installing libpthread-stubs 0.3-1
    ...

    Tous les paquets dont xorg dépend seront compilés et installés dans le bon ordre et enfin xorg sera compilé et installé.

    7.4.2. Mettre à jour un ou plusieur paquets

    Si on souhaite connaître les paquets à mettre à jour on utilisera prt-get avec l'option diff et sans argument. Exemple:

    [ ~ ] prt-get diff
    Differences between installed packages and ports tree:
    
    Port                Installed           Available in the ports tree
    
    initrd              2.6.34.2-3          2.6.34.5-1          
    pkg-get             0.5.0-1             0.5.1-1             
    ports               1.5-5               1.5-6               
    prt-get             5.18-1              5.18-2

    Maintenant si l'on souhaite mettre tous les ports à jour avec une seule ligne de commande.

    [ ~ ] prt-get sysup

    Tous les paquets à mettre à jour seront mis à jour.

    7.4.3. Requête d'informations sur les ports (installé ou non)

    L'application prt-get permet de faire beaucoup de choses sur les paquets. Une fonction qui est très utile est la demande d'information sur un paquet. Vous pouvez connaître la description, le chemin complet de l'emplacement du port, l'URL du paquet, le mainteneur, le paquager, la version, la release, les dépendances d'un paquet en utilisant l'option info et le nom du paquet en argument. Exemple:

    [ ~ ] prt-get info python
    Name:         python
    Path:         /usr/ports/extra
    Version:      2.6.5
    Release:      1
    Description:  Environnement de développement python
    URL:          http://www.python.org
    Packager:     thierryn1 at hispeed dot ch
    Maintainer:   NuTyX core team
    Dependencies: pth,sqlite3

    Il existe encore beaucoup de possibilités à explorer, je vous renvoie aux pages de manuel de prt-get (en anglais) pour en connaître tous les détails.

    7.4.4. Fichiers de configuration de prt-get

    7.4.4.1 /etc/prt-get.conf

    Ce fichier défini:

  • prtdir /usr/ports/base spéficie le dossier des ports de la collection de base, il peut en avoir plusieurs, l'ordre importe, le premier paquet trouvé sera utilisé.
  • writelog enabled spécifie la production des logs lors de la compilation des ports.
  • runscripts spécifie si on souhaite exécuter les scripts pre et post-install.
  • preferhigher Il est également possible de forcer la mise à jour uniquement sur les paquets plus récents.
  • 7.5. Installation d'une application non disponible sous NuTyX

    7.5.1. Introduction

    NuTyX dispose actuellement de quelques 1300 applications disponibles en binaires. C'est à la fois beaucoup et pas beaucoup en effet les jours ou presque sortent de nouvelles applications sous licence libre (ou pas). Rien que sur le site de sourceforge.net, on peut y trouver plus de 5000 applications toutes platformes confondues. Si vous avez trouvez l'application de vos rêves, il faudra par un moyen ou un autre la compiler, l'installer et la faire fonctionner dans NuTyX. Pour mener à bien cette opération, voici comment procéder. Nous allons voir 2 approches différentes afin de vous familiariser avec la compilation. La première approche se fait entièrement "à la main". Pour éviter toute fausse manoeuvre, nous utilisons notre propre compte utilisateur , il n'est pas nécessaire d'utiliser le compte root. La deuxième approche est la methode utilisée pour la compilation de toutes applications disponible sous NuTyX. Il est recommandé de tester la compilation du port avec son propre compte, si tout se passe bien, on le recompilera en root.

    7.5.2. Première approche: sans le support de pkgutils

    Supposons que vous avez choisis de compiler une application depuis les sources. Pour pouvoir compiler une application sans trop de problème, il y a plusieurs choses à connaître: L'url du site du/des développeur(s), le lien où trouver les sources de l'application que l'on souhaite compiler, les dépendances de l'application qu'il faut avoir compilé et /ou installé au préalable. C'est sans doute la partie la plus délicate à connaître car pas toujours bien informée sur le site du développeur. Une lecture du fichier README ou INSTALL peut souvent aider.

    Pour commencer, afin d'avoir tous les fichiers "sous le même toit", je crée un dossier et me place dedans:

    [ ~ ] mkdir paquet-source
    [ ~ ] cd paquet-source
    [ ~/paquet-source ]
    Comme exemple nous allons choisir l'éditeur de texte scite du site scintilla. Les sources de l'application se trouvent ici. Première difficulté, il faut identifier l'url de téléchargement avec précision pour pouvoir la réutiliser dans la deuxième approche. Si le projet se trouve sur sourceforge.net, le lien de téléchargement est un peu spécial, il varie en fonction de votre région. Donc si je copie ici le lien de téléchargement des sources:
    http://downloads.sourceforge.net/project/scintilla/SciTE/2.21/scite221.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fscintilla%2Ffiles%2F&ts=1284313048&use_mirror=ignum
    Ce lien ne sera pas utilisable par la commande wget. Il faut donc l'adapter et tout supprimer ce qui se trouve derrière le ? Donc si l'on utilise la commande suivante
    [ ~/paquet-source ] wget http://downloads.sourceforge.net/project/scintilla/SciTE/2.21/scite221.tgz
    --2010-09-12 19:45:37--  http://downloads.sourceforge.net/project/scintilla/SciTE/2.21/scite221.tgz
    Résolution de downloads.sourceforge.net... 216.34.181.59
    Connexion vers downloads.sourceforge.net|216.34.181.59|:80...connecté.
    requête HTTP transmise, en attente de la réponse...302 Found
    Emplacement: http://sunet.dl.sourceforge.net/project/scintilla/SciTE/2.21/scite221.tgz [suivant]
    --2010-09-12 19:45:37--  http://sunet.dl.sourceforge.net/project/scintilla/SciTE/2.21/scite221.tgz
    Résolution de sunet.dl.sourceforge.net... 194.71.11.73
    Connexion vers sunet.dl.sourceforge.net|194.71.11.73|:80...connecté.
    requête HTTP transmise, en attente de la réponse...200 OK
    Longueur: 1920326 (1,8M) [application/x-gzip]
    Sauvegarde en : «scite221.tgz»
    
    100%[=============================================================================================================>] 1.920.326   1,07M/s   ds 1,7s    
    
    2010-09-12 19:45:39 (1,07 MB/s) - «scite221.tgz» sauvegardé [1920326/1920326]
    
    
    [ ~/paquet-source ]
    Les sources sont désormais dans le dossier personnel de l'utilisateur, afin de s'assurer que les sources soient correctement téléchargées, un moyen est d'analyser le début du contenu du fichier téléchargée:
    [ ~/paquet-source] tar --list --file scite221.tgz | head
    scintilla/bin/
    scintilla/bin/empty.txt
    scintilla/bin/.cvsignore
    scintilla/cocoa/
    scintilla/cocoa/QuartzTextStyle.h
    scintilla/cocoa/Framework.mk
    scintilla/cocoa/ScintillaTest/
    scintilla/cocoa/ScintillaTest/AppController.mm
    scintilla/cocoa/ScintillaTest/main.m
    scintilla/cocoa/ScintillaTest/ScintillaTest.xcodeproj/
    tar: erreur d'écriture
    [ ~/paquet-source ]
    On peut ignorer le message tar: erreur d'écriture ce qui est important c'est de constater que lorsque les sources seront extraites du fichier, elles se trouveront dans le dossier scintilla. Ce n'est pas toujours le cas, souvent le développeur ajoute la version de l'application au nom du dossier. Nous allons maintenant tenter d'extraire les fichiers du téléchargement et entrer dans le dossier des sources.
    [ ~/paquet-source ] tar xf scite221.tgz
    [ ~/paquet-source ] l
    total 1,9M
    drwxrwxr-x   4 install install  136 12 sep 19:51 .
    drwxr-xr-t 177 install install  12K 12 sep 19:38 ..
    drwxrwxr-x  14 install install  544 12 sep 19:51 scintilla
    drwxrwxr-x  11 install install  576 12 sep 19:51 scite
    -rw-rw-r--   1 install install 1,9M  2 sep 03:00 scite221.tgz
    [ ~/paquet-source ]
    On peut voir que 2 dossiers ont été créés. Le fichier scite/README va nous expliquer comment compiler le paquet-source. En gros on peut y lire:
    You must first have GTK+ 2.0 or later and GCC (4.1 or better) installed.
    GTK+ 1.x will not work.
    Other C++ compilers may work but may require tweaking the make file.
    
    To build Scintilla, use the makefile located in the scintilla/gtk directory
    	cd scintilla/gtk
    	make
    	cd ../..
    
    To build and install SciTE, use the makefile located in the scite/gtk directory
    	cd scite/gtk
    	make
    	make install
    
    This installs SciTE into $prefix/bin. The value of $prefix is determined from
    the location of Gnome if it is installed. This is usually /usr if installed
    with Linux or /usr/local if built from source.
    
    Il faut donc s'assurer d'avoir gtk2
    [ ~/paquet-source ] pkginfo -i|grep gtk
    gtk 2.20.1-1
    gtk-doc 1.11-1
    pygtk 2.17.0-1
    [ ~ ] 
    Nous sommes prêt maintenant pour compiler les sources.
    [ ~/paquet-source ] cd scintilla/gtk
    [ ~/paquet-source/scintilla/gtk ] make
    ...
    ....
    touch ../bin/scintilla.a
    [ ~/paquet-source/scintilla/gtk ] cd ../..
    [ ~/paquet-source ] cd scite/gtk
    [ ~/paquet-source/scite/gtk ] make
    ...
    ...
    g++ `` -rdynamic -Wl,--as-needed -Wl,--version-script lua.vers -DGTK SciTEGTK.o GUIGTK.o Widget.o FilePath.o SciTEBase.o SciTEBuffers.o SciTEIO.o String
    List.o Exporters.o StringHelpers.o PropSetFile.o MultiplexExtension.o DirectorExtension.o SciTEProps.o StyleWriter.o Utf8_16.o JobQueue.o GTKMutex.o IFace
    Table.o ../../scintilla/bin/scintilla.a LuaExtension.o lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o 
    lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o ldblib.o liolib.o lmathlib.o ltablib.o lstrlib.o loadlib.o loslib.o 
    linit.o -o ../bin/SciTE -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -
    lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0   -ldl -lstdc++
    [ ~/paquet-source/scite/gtk ]
    La compilation prend du temps, une fois terminée et si aucune erreur n'est survenue, on devrait pouvoir l'installer et si possible pour ne pas de faire de bétises. Il suffit maintenant de s'assurer que les binaires attérissent au bon endroit. Comme nous sommes un utilisateur normale, la moindre tentative d'installer des binaires dans le système NuTyX sera voué à un échec et c'est très bien ainsi. Donc si on fait
    [ ~/paquet-source/scite/gtk ] make install
    install -m 755 -d /usr/bin /usr/share/scite
    install: impossible de changer les permissions de « /usr/share/scite »: Aucun fichier ou dossier de ce type
    make: *** [install] Erreur 1
    [ ~/paquet-source/scite/gtk ] 
    Il faut donc spécifier la destination, quelque part dans le dosssier personnel. On commence donc par créer un dossier de destination:
    [ ~/paquet-source/scite/gtk ] mkdir ~/paquet-binaire
    Comme on a pu le lire dans le readme, le makefile utilise la variable destdir pour spécifier la destination des binaires. Pour installer le paquet au bon endroit c'est à dire dans ~/paquet-binaire, on utilise la syntaxe suivante
    [ ~/paquet-source/scite/gtk ] make DESTDIR=~/paquet-binaire make
    install -m 755 -d /home/thierry/paquet-binaire/usr/bin /home/thierry/paquet-binaire/usr/share/scite
    install -m 755 ../bin/SciTE /home/thierry/paquet-binaire/usr/bin
    for files in ../src/*.properties ../doc/*.html ../doc/SciTEIco.png ../doc/PrintHi.png; \
    	do \
    		install -m 644 $files /home/thierry/paquet-binaire/usr/share/scite; \
    	done
    install -m 755 -D SciTE.desktop /home/thierry/paquet-binaire/usr/share/applications/SciTE.desktop
    install -m 644 -D Sci48M.png /home/thierry/paquet-binaire/usr/share/pixmaps/Sci48M.png
    [ ~/paquet/scite/gtk ] 
    Et voilà vous venez de compiler votre paquet entièrement à la main. Il faut savoir que ce n'est pas toujours aussi simple de compiler un paquet depuis les sources. Beaucoup de choses peuvent varier, par exemple dans cet exemple, il n'y avait pas de commande de configuration. Les dépendances n'étaient pas trop nombreuses, il fallait juste s'assurer d'avoir gtk d'installé. Vous pouvez maintenant tester votre application:
    [ ~/paquet/scite/gtk ] cd
    [ ~ ] paquet-binaire/usr/bin/SciTe
    
    L'application devrait s'ouvrir. Si tout se passe bien il ne vous reste plus qu'à transférer tous les fichiers se trouvant dans le dossier ~/paquet-binaire à la racine de NuTyX et cela doit se faire via le compte root. Avant de faire cela, je propose de vous expliquer pourquoi ce n'est pas une bonne idée et de plutôt préférer la deuxième approche ci-dessous.

    Inconvénients

  • Aucun moyen de retrouver les fichiers installés
  • Aucun moyen de retrouver les informations sur le paquet installé
  • Aucun moyen de retrouver le paquet si vous souhaitez l'installer sur une autre machine
  • Cette methode est relativement fastidieuse, chaque opération doit impérativement être refaite en cas de mise à jour par exemple.
  • Aucun paquet n'a été créé, ce qui est très dommage si vous souhaitez le partager avec d'autres utilisateurs de NuTyX
  • Cette première approche vous a permis de vous familiariser avec le monde de la compilation, nous allons maintenant utiliser le même exemple d'application mais en utilisant la methode recommandée par NuTyX.

    7.5.3. Deuxième approche: utilisation de pkgutils

    La première approche nous a appris quelques aspects bien utiles qui seront repris par l'outil pkgutils de façon transparente. Avec cette approche nous allons créer un port qui sera utilisé par pkgutils

    7.5.3.1. Définition d'un port

    La compilation d'un paquet se fait via le fichier Pkgfile. Ce fichier contient toute sorte d'information entre autre la façon dont le paquet doit être compilé. Voici en détail, l'explication de chaque ligne du fichier Pkgfile. L'interprétation du fichier Pkgfile est faite par l'interpréteur de commande bash, ce qui veut dire que tout ce que suit le caractère "#" est considéré comme des commentaires. Mais il faut savoir que cela ne signifie pas que la ligne n'est pas utile.

    # Description:

    Cette ligne permet de donner des informations précises sur ce que fait, contient le paquet. L'information se retrouve lorsqu'on souhaite des informations sur le paquet:
     [ ~ ] prt-get info openoffice
    Name:         libreoffice
    Path:         /usr/ports/base
    Version:      3.6.4.3
    Release:      2
    Description:  Suite complète de office en logiciel libre
    URL:          http://www.openoffice.org
    Packager:     lesibel at free dot fr
    Maintainer:   NuTyX packager team
    Dependencies: rpmextract,libmspack,gconf,nss,pstoedit,poppler,openldap,kdelibs,qt,lpsolve,libmythes,hyphen
    [ ~ ]
    Cette information est également disponible sur le page des paquets

    # URL:

    Cette ligne spécifie le lien url des développeurs du paquet, c'est évidement indispensable de connaître le site.

    # Maintainer:

    Cette ligne spécifie le groupe des mainteneurs ou des développeurs qui maintiennent le paquet. On peut y trouver l'adresse email du dévelopeur ou du mainteneur. Cela varie.

    # Packager:

    Cette ligne vous informe qui (en spécifiant le courriel) a construit le paquet pour que le résultat de celui-ci fonctionne.

    # Depends on:

    Les dépendances du paquet séparées par une virgule seront listées dans cette ligne. Ce qu'il faut savoir: - Il n'est pas obligatoire de spécifier toutes les dépendances du port mais seules les dépendances directes suffisent. En vérifiant par exemple les dépendances de gtk, on se rend compte que xorg est une dépendance de gtk. Si le port dépend de gtk, il est inutile de spécifier xorg comme dépendance puisque c'est déjà une dépendance de gtk. - Si vous utilisez pkgutils pour la construction d'un paquet, les dépendances ne seront pas prise en compte, ce qui peut parfois être utile et nécessaire si l'on souhaite une version allégée (par exemple) du port. Dans ce cas il est très probable que le résultat de la construction sera différente de celle du Packager du port, vous le saurez en recevant un message d'avertissement disant que le .footprint est différent. A vous de prendre la décision de le garder tel quel ou d'installer (ou de compiler via prt-get par exemple).

    # Run on:

    Les dépendances binaires du paquets séparées par une virgule seront listées dans cette ligne. Elles peuvent être différentes des dépendances précédentes, en effet très souvent un paquet binaire ne necessite pas les mêmes dépendances pour être compilé et pour pouvoir fonctionner.

    Les variables utilisées par pkgutils

    name=

    Cette ligne spécifie le nom du paquet. Notez qu'il est IMPERATIF que le nom du paquet soit identique au nom du dossier dans lequel se trouve le fichier Pkgfile. Tous les paquets sont toujours écrit en minuscule. Les symboles - et _ sont autorisés. Dans le cas de module perl, le nom devrait commencer par p5 et dans le cas de module de python, par py. Il y a malheureusement certains nom qui ne suivent pas la règle.

    version=

    Une application est toujours suivie d'une version, il s'agit dans 99 % des cas de la version des sources de l'application.

    release=

    Le port peut connaître plusieurs évolutions, la variable release est utilisée pour informer l'utilisateur de l'évolution du port (et non des sources du port). Donc dans la plupart des cas, le numéro de release est égale à 1. Dans ce cas on a bien la première sortie du port.

    source=()

    Pour pouvoir être compilé, la compilation nécessite les sources à télécharger. Cette ligne spécifie l'URL complète des sources. Les formats HTTP et FTP sont supportés. Notez que la définition de cette variable utilise des parenthères. Maintenant que nous avons définis toutes les variables, il ne reste plus qu'à fournir "le travail d'assemblage" que l'interpréteur va nous fournir en utilisant la fonction
    build()
    {
    ..
    }
    
    La fonction s'appelle build et se définie entre les accolades. On y retrouvera donc toutes les commandes nécessaire pour la compilation du paquet. SRC et PKG

    Ces variables ne sont pas définies dans le port mais sont disponible. SRC désigne le dossier de base où sont chargés les fichiers concernant le port. PKG désigne le dossier finale des fichier binaires et qui sera la base du paquet empaqueté. Il contient donc l'ensemble des fichiers finaux, sorte d'arborescence qui sera utilisée pour faire un paquet archivé et compressé

    7.5.3.2. Contenu final du Pkgfile

    Si l'on reprend notre exemple, voici à quoi devrait ressembler le Pkgfile:
    # Description: Editeur de texte graphique
    # URL: http://www.scintilla.org
    # Maintainer: Future contributeur NuTyX 
    # Packager: john at bluewin dot ch
    # Depends on: gtk
    # Run on: gtk
    
    name=scite
    version=2.21
    release=1
    source=(http://downloads.sourceforge.net/project/scintilla/SciTE/${version}/${name}221.tgz
    build() {
    	cd scintilla/gtk
    	make
    	cd ../../
    	cd $name/gtk
    	make
    	make DESTDIR=$PKG install
    	ln -s SciTe $PKG/usr/bin/$name
    }
    
    Il est recommandé de créer un dossier afin d'y placer tous ses ports personnel. En root:
    [ ~ ] mkdir /usr/ports/personnel
    [ ~ ] cd /usr/ports/personnel
    [ /usr/ports/personnel ] 
    
    Il faut maintenant créer le dossier dans lequel on y ajoutera le Pkgfile.
    [ /usr/ports/personnel ] mkdir scite
    [ /usr/ports/personnel ]  cd scite
    [ /usr/ports/personnel/scite ] 
    
    Créez le Pkgfile comme ci-dessus et sauvegardez-le dans le dossier /usr/ports/personnel/scite. Il suffit maintenant de le compiler via la commande pkgmk -d -i
    [ /usr/ports/personnel/scite ] pkgmk -d -i
    ...
    ..
    =======> WARNING: Footprint not found, creating new.
    =======> Building '/usr/ports/personnel/scite/scite#2.21-1.pkg.tar.xz' succeeded.
    =======> Installing '/usr/ports/personnel/scite/scite#2.21-1.pkg.tar.xz'.
    pkgadd /usr/ports/personnel/scite/scite#2.21-1.pkg.tar.xz
    =======> Installing '/usr/ports/personnel/scite/scite#2.21-1.pkg.tar.xz' succeeded.
    [ /usr/ports/personnel/scite ] 
    Vous venez de créer, compiler et installer votre premier port. Si vous allez dans le menu -> utilitaires-> Editeur de Texte SciTE et l'application se lance. Vous pouvez maintenant maintenir ou supprimer très facilement le paquet ainsi construit.
    [ /usr/ports/personnel/scite ] pkginfo -i|grep scite
    scite 2.21-1
    [ /usr/ports/personnel/scite ] 
    ImportantBON À SAVOIR

    Si vous avez la chance de disposez un processseur multicores, pensez à ajouter la ligne:

    export MAKEFLAGS="-j 5"
    dans le fichier /etc/pkgmk.conf, cela vous permet de profiter des 4 processeurs de votre machine. Ajustez en fonction de votre situation: nombre de processseurs + 1

    7.5.4. Allez plus loin dans la construction des paquets.

    7.5.4.1 Ajuster les fichiers de configuration

    On a vu dans le chapitre précédent qu'il était possible d'obtenir des informations sur un paquet. Malheureusement, si je fais:
    [ ~ ] prt-get info scite
    Package 'scite' not found
    [ ~ ] 
    Comme expliqué plus haut, il faut spécifier l'information dans le fichier de configuration /etc/prt-get.conf. On y ajoute donc:
    prtdir /usr/ports/personel
    Maintenant toutes les informations du paquet scite sont disponibles. Il est également possible désormais de voir les dépendances nécessaires au paquet
    [ ~ ] prt-get depends scite
    ....
    [i] xorg-xinit
    [i] xorg-xauth
    [i] xorg-twm
    [i] xorg-xclock
    [i] xorg-xterm
    [i] xorg
    [i] cairo
    [i] gobject-introspection
    [i] poppler
    [i] pango
    [i] atk
    [i] libcups
    [i] gtk
    [i] scite
    
    Comme on peut le voir toutes les dépendances sont listées.

    7.5.4.2 Construire ses paquets dans une NuTyX chroot

    Lorsque vous construisez un nouveau paquet, celui-ci nécessite des dépendances qui peuvent déjà être installées dans votre NuTyX. Ce qui a pour conséquence que vous ne savez pas exactement quelles sont les dépendances exactes de votre nouvelle application. Pour le savoir, il faudrait installer une NuTyX de base et ensuite compiler la nouvelle application et ainsi déterminer les dépendances. C'est tout à fait faisable pas très pratique puisqu'une NuTyX de base n'a plus tous les outils graphiques pour pouvoir travailler confortablement. On utilise alors une NuTyX de base DANS la NuTyX principale ou on entre "dans une chroot". Comme vous l'avez sans doute lu, il est possible d'installer NuTyX en utilisant le script d'installation, cela permet de très facilement se créer une NuTyX dans laquelle on entrera pour créer ses nouveaux paquets. Le script peut indifférement installer NuTyX sur une partition ou dans un dossier. Nous allons donc installer une NuTyX dans un dossier. Comme nous installons depuis une NuTyX et dans un dossier, les arguments se réduisent à spécifier le dossier dans lequel on souhaite installer NuTyX. Attention, le dossier doit impérativement se trouver à la racine. Petit rappel, l'installation doit se faire via le compte root.Exemple:
    [ ~ ] wget http://miroir1.nutyx.org/install-sekong.ash
    --2010-09-16 00:20:28--  http://miroir1.nutyx.org/install-sekong.ash
    Résolution de miroir1.nutyx.org... 88.191.61.139
    Connexion vers miroir1.nutyx.org|88.191.61.139|:80...connecté.
    requête HTTP transmise, en attente de la réponse...200 OK
    Longueur: 30503 (30K) [text/plain]
    Sauvegarde en : «install-sekong.ash»
    
    100%[==============================================================================================================>] 30.503       155K/s   ds 0,2s    
    
    2010-09-16 00:20:29 (155 KB/s) - «install-sekong.ash» sauvegardé [30503/30503]
    [ ~ ] export LFS=/NuTyX-chroot
    [ ~ ] sh install-sekong.ash /NuTyX-chroot
    Cette installation est une migration sur /NuTyX-chroot                                                                                         [ INFO ]
    ***********************************************
    fr_CH-latin1
    ************************************************
    Création du dossier des dépots
    Téléchargement de la liste des paquets...                                                                                                      [  OK  ]
    Téléchargement de pkgutils..                                                                                                                   [  OK  ]
    Extraction de pkgutils ...                                                                                                                     [  OK  ]
    Installation de var/lib/pkg ...                                                                                                                [  OK  ]
    ....
    
    *******************************************************
    
     Vous êtes maintenant dans la NuTyX sekong
    
    *******************************************************
    Veuillez entrez un mot de passe pour le root
    Changement du mot de passe de root
    Entrez le nouveau mot de passe (minimum de 5, maximum de 8
    caractères). Utilisez une combinaison de lettres majuscules, minuscules
    et de chiffres.
    Nouveau mot de passe : 
    Mot de passe incorrect : trop simple.  
    Attention : mot de passe trop simple (entrez-le à nouveau pour l'utiliser
    quand même).
    Nouveau mot de passe : 
    Nouveau mot de passe (pour vérification) : 
    passwd : mot de passe changé.
    ******************************************************
    * Installation terminée. Merci d'avoir choisie NuTyX *
    * Si votre connection  internet le permet,           *
    * pour plus d'info, venez nous rendre visite sur:    *
    *                                                    *
    *                http://www.nutyx.org                *
    *                                                    *
    ******************************************************
    
    Votre NuTyX chroot est maintenant installée. Pour pouvoir l'utiliser, il faut monter quelques dossiers indispensables au bon fonctionnement de la NuTyX chroot. Toujours en root, faîtes:
    [ ~ ] mount -v --bind  /dev /$LFS/dev
    [ ~ ] mount -vt devpts devpts $LFS/dev/pts
    [ ~ ] mount -vt tmpfs shm $LFS/dev/shm
    [ ~ ] mount -vt proc proc $LFS/proc
    [ ~ ] mount -vt sysfs sysfs $LFS/sys
    [ ~ ] mount --bind /srv/sources $LFS/srv/sources
    
    Il ne vous reste plus qu'à entrer dans votre NuTyX chroot:
    [ ~ ] chroot "$LFS" /usr/bin/env -i \
    [ ~ ] HOME=/root TERM="$TERM" PS1='\u@\h:\w\$ ' \
    [ ~ ] PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    [ ~ ] /bin/bash --login
    [ / ]
    
    Vous êtes maintenant dans la NuTyX chroot, prêt à travailler en toute sécurité. Pour ressortir, tapez simplement:
    [ / ] exit
    [ ~ ]
    
    Vous pouvez évidement vous créer un script avec toutes les commandes précitées.

    Foire aux Questions

    1. L'installateur ne permet pas de créer une partition séparée pour le /home par exemple

    Cette question nous a été tellement posée. Je vais essayer d'apporter le plus d'arguments possible afin d'expliquer la raison.

    Aujourd'hui, un utilisateur utilise très souvent de grosses quantités de données,la taille du dossier personnel peut très très vite grossir: Les MP3, les photos, les vidéos sont souvent des fichiers très gourmants en place disque. Imaginons que vous avez un disque dur de 250 Gbytes. Vous vous dîtes: OK je prends 100 G pour le système et 150 pour mes données. Super, vous venez de "couper" votre disque dur en 2 et la partition de données sera plus vite remplie que si vous aviez gardé une seule partition. Donc si on pouvait éviter de devoir découper son disque dur en partitions tout en pouvant s'assurer en cas de réinstallation de NuTyX de ne pas devoir "toucher" à la partition sur laquelle se trouve ses données personnelles, ce serait l'idéal. C'est exactement l'idée de l'installateur de NuTyX.

  • L'installateur ne formate jamais une partition déjà formatée sans une intervention volontaire de votre part.
  • Si vous avez une distribution (NuTyX ou autre) avec vos données personnelles et le système sur la même partition. Lors de l'installation, l'installateur vous signalera qu'il existe déjà une distribution mais ne formatera pas la partition. Il vous proposera de l'effacer, c'est à dire effacer les dossiers système /var,/proc,/sys,/usr,/sbin,/etc mais ne touchera pas aux autres dossiers comme le /home, /MP3, etc. Donc vos données personnels sont conservées
  • Aujourd'hui il est très facile de configurer un serveur de données, les utilisateurs utilisent de plus en plus un serveur de fichiers en se connectant via NFS par exemple
  • Si vous avez configuré une partition pour la mémoire d'échange (swap) avant l'installation de NuTyX, la partition sera reconnue par l'installeur et donc utilisable directement par la NuTyX installée.

    Si on résume, on peut dire que créer une partition séparée pour le dossier /home est aujourd'hui inutile, en tous cas sous NuTyX. On peut d'ailleurs se demander pourquoi le système d'exploitation de la pomme ne préconise pas non plus de partitions séparée.

    2. L'installateur formate la partition en reiserfs par défaut si je ne l'ai pas spécifié

    On parle ici de la version 3.6 de resierfs. Les utilisateurs de NuTyX sont unanimes, le système de fichiers reiserfs est très robuste, très stable, très rapide. Le mainteneur est malheureusement en prison pour une toute autre raison. J'ai personnellement expérimenté de très bons résultats avec ce système de fichiers, et même si vous faites involontairement des fausses manoeuvres, il existe de très bon outils de récupération dans le paquet reiserfsprogs.

    3. Est-il possible de mettre à jour NuTyX sekong vers NuTyX sekong sans devoir tout réinstaller ?

    Il n'est pas possible de mettre à jour NuTyX attapu sur NuTyX sekong, le nombre de changements est trop important. Il faut savoir aussi que tous les paquets sont à chaque mise à jour majeur recompiler sur une nouvelle chaîne glibc+gcc, cela permet d'avoir un système cohérent et très robuste. Comme je l'ai expliqué, il suffit d'effacer la NuTyX attapu, vous gardez votre dossier /home et tous vos MP3 qui se trouvent dans /MP3 ( par exemple ), ensuite vous installez directement sur la même partition la NuTyX sekong.

    4. Si je supprime un paquet ses dépendances ne sont pas supprimées. Pourquoi?

    Dans la plupart des cas, une application utilisent (ou dépends) d'autres applications ou d'autres librairies qui eux-même utilisent d'autres application ou librairies et ainsi de suite. Il est donc bon de savoir ce que l'on veut supprimer comme dépendance. Dans le cas d'une interface graphique, on pourrait s'attendre à ce que la commande (l'alias) del kde supprimerait les applications kde (kdebase, kdeutils, kdegraphics, etc). Malheureusement (ou heureusement) il n'en est rien. C'est à l'utilisateur de prendre la décision si il veut supprimer les dépendances d'un paquet. En effet ds bien des cas, le résultat peut rendre NuTyX tout simplement inutilisable si vous avez supprimez une dépendance utilisée par de nombreuses applications (comme gtk par ex). C'est aussi pour cette raison que sous NuTyX les mises à jour sont limitées aux applications dont aucune autre application ne dépendent. Si malgré tout vous souhaitez d'une application, voici ci-dessous un ptit script que vous pouvez utilisez crainte. En effet, le premier scrit liste d'abord les dépendances qui seront supprimées, et le deuxième script les supprimes effectivement. Le principe utilise le résultat de prt-get info . Dans l'exemple ci-dessous, c'est le paquet e17 et ses dépendences directes qui seront supprimées:
    [ ~ ]  for i in `prt-get info e17|grep ^Dependencies|cut -d ":" -f2|sed 's/,/ /g'`
    [ ~ ]  do echo $i
    [ ~ ]  done
    eina
    evas
    ecore
    e_dbus
    embryo
    eet
    efreet
    edje
    curl
    alsa-lib
    [ ~ ]
    
    Exemple typique: curl et alsa-lib sont des paquets / librairies utilisées pour d'autres applications. Il n'est donc pas recommandé d'exécuter le deuxième script ci-dessous:
    [ ~ ]  for i in `prt-get info e17|grep ^Dependencies|cut -d ":" -f2|sed 's/,/ /g'`
    [ ~ ]  do pkgrm $i
    [ ~ ]  done
    
    Dans cette exemple vous supprimerez sans doute une librairie (alsa-lib) et une application qui est néssecaire pour d'autres applications. Au pire, vous pouvez les réinstaller, mais finalement est-ce bien nécessaire de vouloir supprimer des applications qui finalement ne ralentissent pas et n'encombrent pas vraiment le disque dur.
  • Valid XHTML 1.0 Transitional    CSS Valide !
    Copyright NuTyX - réalisé par FDS - Création