Tue Jul 25 09:39:32 2017 UTC

Petit lexique du NuTyXien

Cards

Cards signifie 'Create, Add, Remove and Download System' (Système de Création , d'Ajout, de Suppression et de Téléchargement des paquets). C'est un jeu d'utilitaires pour la gestion vos logiciels installés sur votre NuTyX-linux.

Cards permet également la gestion des dépendances pour la compilation. Il gére les dépendances pour le fonctionnement de manière autonome. Cela signifie que dans 95 % des cas, les dépendances pour le fonctionnement ne doivent pas être spécifiées dans la recette de construction.

Un paquet

Un paquet est une archive contenant un ensemble de fichiers. Ces fichiers peuvent être de différente nature. On y trouvera des librairies, des applications en ligne de commande, des applications utilisées dans un environnement graphique, des informations de configuration, etc

Lorsque le paquet est installé sur votre NuTyX, il sera géré par le gestionnaire de paquets cards

Syntaxe d'une archive

  • name: (nom-du-port)
  • .group-name: seulement si le paquet fait partie d'un groupe. Voir configuration: 'PKGMK_GROUPS'
  • .locale-name: seulement si le paquet fait partie d'une locale. Voir configuration: 'PKGMK_LOCALES'
  • build-version: Unité de temps en 10 chiffres représentant la date de construction du paquet. Voir aussi 'PKGMK_BUILDVER'
  • architecture: "any" ou l'architecture pour laquelle le paquet est destiné: par ex. ("$(uname -m)" x86_64)
  • .extension: l'extension prédéfinie par cards sans compression.
  • .compression-extension: seulement si le paquet est compressé. Voir configuration: 'PKGMK_COMPRESS_PACKAGE'

Une collection

Une collection regroupe un jeu de paquets qui constitue un ensemble de fonctionnalitées.

Losque vous installez le système de base depuis l'ISO MINI ou depuis le script, vous installez la collection base.

Par exemple, la collection gui permet d'avoir une inteface utilisateur graphique. Sur cette interface graphique, on choisira son gestionnaire de fenêtres favori.

Sous NuTyX, il est possible d'installer les collections kde5, gnome, mate ou xfce4.

Une dépendance

Une dépendance est le nom d'un paquet AAA qui est necessaire au fonctionnement ou à la compilation d'un autre paquet BBB.

Le paquet gtk3 est une dépendance utilisée par de nombreux paquets de la collection gnome

Une famille

Sous NuTyX, une famille de paquets désigne un ensemble de paquets dont le commencement du nom est commun (paquet père): Un exemple de famille de paquets sous NuTyX:

  • gstreamer1
  • gstreamer1-plugins-bad
  • gstreamer1-plugin-good
  • gstreamer1-plugin-libav
  • gstreamer1-...

Une famille de paquets se trouve toujours dans une même collection

Une famille de paquets peut partager les mêmes variables telles que la version, les sources, etc

Un groupe

Un groupe de paquets constitue un ensemble de paquets fournissant un usage précis, par exemple le groupe devel fournira les outils necessaires pour la compilation.

Le nom du groupe d'un paquet est déterminé par la partie du nom qui suit le point.

Chaque locales constituent également un groupe de paquets.

Par exemple, le paquet gcc.devel fait partie du groupe devel.

La plupart des paquets sont répartis dans ces groupes.

Les groupes actuels sont: devel, man, doc, lib et service ainsi que chaque locale disponible fr, de, da, it, pt, tr, ru, sv, nn, es, nl et fi

Une catégorie

Une catégorie définie un ensemble d'applications ayant des fonctionnalitées similaires: Un exemple typique de catégorie est "Internet" qui regroupera les navigateurs, les client d'email, clients discussions instantanées, etc

Le système de base

Le système de base de NuTyX est constitué d'un ensemble minimum de paquets qui ne sera JAMAIS supprimé.

La liste des paquets à garder lors du retour à un système de base est définie dans le fichier /etc/cards.conf. Le mot clé en début de ligne est: base.

Un script

Le script est utilisé, comme en cinéma, pour définir chaque action devant être exécutée par l'interpréteur. Dans le cadre de cet article, le script sera donc l'ensemble des actions ordonnées à faire pour la construction d'un paquet.

Un script peut également être utilisé pour installer une NuTyX depuis une autre distribution linux ou depuis une autre NuTyX déjà installée.

Une recette

Une recette définie la construction d'un paquet. Sous NuTyX, la recette d'un paquet se trouve dans le fichier Pkgfile.

Un port

Sur NuTyX, un port est constitué d'un dossier contenant tous les fichiers necessaires pour la construction d'un paquet. Il contiendra toujours au minimum un fichier appelé Pkgfile.

Le port peut également, dans certains cas, contenir un script de pré-installation ou de post-installation. Il peut également contenir un fichier README descrivant diverse options, actions, configutations possibles du port.

Le terme port fait référence a un dépot distant contenant des ports et utilise un programme client capable de télécharger ces ports depuis ce dépot distant

NuTyX utilise l'utilitaire ports pour le téléchargement des ports depuis le dépot distant et les place dans le dossier /usr/ports/<nom_de_collection>

Le fichier 'Pkgfile'

Le Pkgfile est un fichier texte. Il contient la recette de construction d'une application. Le résultat de la construction sera un paquet qui pourra être installé par le gestionnaire de paquets cards Le contenu de ce fichier texte suit un schéma standard et est composé de trois parties:

  1. Les informations générales (optionnelles mais vivement recommandées) sur le paquet: Description, URL, Developeur(s), Empaqueteu(r), dépendances
  2. Les informations indispensable pour la construction du paquet: Nom, version, release
  3. La fonction "build" définit la construction proprement dite du paquet.

Il est indispensable de placer le fichier Pkgfile dans un dossier portant le même nom que la variable name définie dans ce fichier Pkgfile.

Exemple d'un tel Pkgfile situé dans le dossier monpaquet:

# Depends on: glib atk

description="Mon premier paquet"
url="http://downloads.nutyx.org"
packager="tnut at nutyx dot org"

name=monpaquet
version=1.0
release=1
source=(${url}/files/$name-$version.tar.xz)

build() {

cd ${name}-$version

./configure --prefix=/usr \
--disable-static

make

make DESTDIR=$PKG install
}

Une chroot

Une chroot est un environnement de travail dans lequel on construit toutes les recettes provenant de différents ports. Votre NuTyX principale n'utilise pas et donc n'a pas de paquets de développement installés.

Sous NuTyX, une chroot est indispensable les raisons suivantes:

  • L'environnement de travail étant isolé de la distribution principale
  • Etant isolé, votre chroot ne pourra jamais endommager le système d'exploitation hôte.
  • La chroot étant une NuTyX fraîchement installée, vous contrôllez entièrement les dépendances necessaires.
  • La chroot vous assure qu'aucune dépendance ne sera installée depuis ou sur le système d'exploitation hôte à votre insus.

Les niveaux

Lorsque cards compile un paquet, il doit connaître le niveau de compilation de celui-ci.

Chaque paquet peut ou pas contenir des dépendances.

Si un paquet appelé AAAA ne contient aucune dépendances, il sera au premier Niveau cad 0 (zero).

Si un paquet appelé BBBB contient une dépendance appelé AAAA, ce paquet sera au deuxième Niveau, cad 1.

La liste des dépendances de compilation d'un paquet se définie à la ligne:

# Depends on: glib atk pango gtk xorg-libx11
du Pkgfile.

Les alias

Il faut savoir que certaines commandes mentionnées sur les pages du site peuvent être remplacées par des alias, c'est à dire un racourci de la commande originale. Si vous souhaitez connaître la liste des alias, utilisez la commande:

alias

Si vous souhaitez modifier les alias définis dans votre NuTyX, vous devez éditer le fichier .bashrc qui se trouve dans le dossier personnel du compte concerné.

Extrait de /root/.bashrc:
if [ -f "/etc/bashrc" ] ; then
  source /etc/bashrc
fi
if [ $EUID -eq 0 ]; then
         alias del='cards remove'
         alias get='cards install'
         alias up='cards install -u'
         alias check='cards sync;cards diff'
else
         alias del='sudo cards remove'
         alias get='sudo cards install'
         alias up='sudo cards install -u'
         alias check='sudo cards sync;sudo cards diff'
fi
alias search='cards search'
alias ll='ls -l'
alias l='ls -alh'
alias duh='du -h --max-depth=1'
alias dfh='df -h'
alias pkgfind='cards list| grep -i'
# End ~/.bashrc