Gestion des paquets

Les paquets sont des fichiers suffixés en .spack : ce sont des archives cpio à double coque, compressés avec xz. Ils sont l'œuvre du créateur de spack ; merci à lui. Voir http://requiescant.tuxfamily.org.


Ancienne arborescence des dépôts (0Linux I, II et zeta)

:!: Cette section présente l'ancienne structure des dépôts de 0linux I, II et zeta, aujourd'hui obsolète. Passez au paragraphe suivant pour la nouvelle structure (à partir de 0linux eta)

Les paquets de 0linux sont découpés en catégories, ou « dépôts ». La distribution installe d'office les dépôts suivants :

  • base/ contenant les outils critiques et le système
  • opt/ contenant toutes les bibliothèques et outils qui complètent le système
  • xorg/ contenant l'ensemble du serveur graphique X, ses outils et bibliothèques

Le reste est rangé dans apps/, qui contient tous les paquets non indispensables au bon fonctionnement du système que l'utilisateur peut installer à loisir et selon ses choix.

Chaque dépôt dans apps/ contient un ou plusieurs paquets. Par exemple, le dépôt du lecteur multimédia audacious contient le lecteur audacious, ses greffons audacious-plugins et les bibliothèques libmcs et libmowgli, afin de satisfaire toutes les dépendances. Chaque dépôt est donc à installer dans son intégralité (0g @audacious sert à cela, vous pouvez également installer les paquets individuellement avec spackadd ou 0g paquetvoulu) :

audacious/
├── audacious-3.0.4-x86_64-1.spack
├── audacious-plugins-3.0-x86_64-1.spack
├── libmcs-0.7.2-x86_64-1.spack
└── libmowgli-0.9.95-x86_64-1.spack

Arborescence des dépôts à partir de 0Linux eta

Les paquets de 0linux ne sont plus découpés en dépôts et la distribution n'installe plus d'office des dépôts entiers.

Le dépôt de paquets contient tous les paquets du système, dont certains sont rangés en sous-répertoires par praticité. Une base de données paquets.db permet de localiser chaque paquet ainsi que ses dépendances.

  • a/ : Applications exécutables en console n'entrant dans aucune autre catégorie.
  • b/ : Bibliothèques non rattachées à un environnement particulier.
  • d/ : Développement. Compilateurs, débogueurs, interpréteurs, etc.
  • e/ : Environnements. KDE, Xfce, GNOME, Enlightenment et autres environnements.
  • g/ : applications Graphiques nécessitant X, non rattachées à un environnement.
  • r/ : Réseau. Clients, serveurs gérant ou utilisant le réseau en console.
  • x/ : X.org, l'implémentation libre et distribution officielle de X11
  • z/ : Zérolinux : paquets-abonnements, facilitant l'installation d'ensembles.

Un type spécial de paquets, les paquets-abonnements, sont rangés dans z/ et permettent d'installer des ensemble de paquets triés par thématiques (tout KDE, studio multimédia, etc.). Ils contiennent tous le suffixe « -abonnement » dans leur nom. Ce sont des paquets quasi-vides contenant des dépendances arbitraires pour permettre d'installer des ensembles logiciels cohérents automatiquement.


Manipuler les paquets de 0Linux I, II et zeta

:!: Cette section présente l'ancienne méthode de gestion des paquets sous 0linux I, II et zeta, aujourd'hui obsolète. Passez au paragraphe suivant pour la méthode actuelle (à partir de 0linux eta).

On désigne un paquet par son nom. On désigne un dépôt de paquets par son nom précédé d'un arobase « @ ».

Télécharger et installer le contenu d'un dépôt de paquets distant, ici Xfce, lequel contient quelques dizaines de paquets :

0g @xfce

Télécharger et mettre à jour tous ses paquets et ses dépôts installés :

0g

:!: Cette commande va également installer les nouveaux paquets ajoutés à la distribution et supprimer les paquets obsolètes.


Manipuler les paquets de 0Linux eta et plus

On désigne un paquet par son nom.

Il faut distinguer 2 méthodes d'installation :

  • celle avec spackadd et spackrm, qui agissent sur des fichiers .spack définis
  • celle avec 0g, qui est un outil d'installation et de mise à jour distante automatisée (et qui utilise spackadd et spackrm dans son fonctionnement interne).

Télécharger et installer un paquet-abonnement (ensemble de paquets regroupés, formant une offre cohérente), ici Xfce, désigné par son paquet-abonnement xfce-abonnement, lequel contient quelques dizaines de paquets ainsi que leurs dépendances :

0g xfce-abonnement

Pour se désabonner, il suffit de désinstaller le paquet-abonnement concerné (voir plus bas).

Télécharger et mettre à jour tous ses paquets installés :

0g

Voir tous les paquets disponibles sur le dépôt :

0g -i

Voir la description d'un paquet en particulier, ici firefox :

0g -i firefox

Installer ou mettre à niveau un paquet individuel, au choix :

Télécharger et installer le paquet firefox :

0g firefox

Installer le paquet Firefox, présent sur le système local :

spackadd /quelque/part/g/firefox-30.0-x86_64.spack

Installer un ensemble de paquets grâce aux paquets-abonnements (dans z/), au choix :

Télécharger et installer l'ensemble des paquets appartenant à l'abonnement à Xfce :

0g xfce-abonnement

Installer l'ensemble des paquets appartenant à l'abonnement à Xfce. Cette commande n'installera que l'abonnement. Vous devrez passer ensuite par 0g pour aller chercher toutes les dépendances comprises dans l'abonnement :

spackadd /quelque/part/z/xfce-abonnement-1-x86_64-1.spack
0g

Le paquet crée 2 journaux après l'installation :

  • une liste des fichiers installés sous /var/log/paquets/paquet-version-archi-révision
  • une liste des commandes exécutées post-installation sous /var/log/scripts/paquet-version-archi-révision

Désinstaller un paquet individuel, au choix :

spackrm xfce4-session                                    # Déduit automatiquement le paquet concerné en cherchant dans '/var/log/paquets/*'
spackrm /var/log/paquets/xfce4-session-4.10-x86_64-32    # On peut désigner l'emplacement du fichier 

Se désabonner d'un ensemble de paquets, ici xfce-abonnement :

spackrm xfce-abonnement

Comme Slackware, des journaux sont conservés pour garder une trace de chaque mise à jour, désinstallation ou mise à niveau. Les journaux se trouvent ici :

  • /var/log/removed-packages/
  • /var/log/removed-scripts/

Réinstaller un paquet individuel déjà installé en forçant l'installation :

spackadd -f /quelque/part/xfce4-session-4.10.0-x86_64.spack

Installer un paquet dans un emplacement spécifique :

spackadd --root=/une/autre/racine /quelque/part/xfce4-session-4.10.0-x86_64.spack

Voir l'arborescence des fichiers que contient un paquet individuel :

less xfce4-session-4.10.0-x86_64.spack

Voir la description d'un paquet individuel :

spackadd --about xfce4-session-4.10.0-x86_64.spack

Extraire le contenu d'un paquet quelque part sans l'installer (pas de post-installation) :

spackedit paquet-version-archi-révision.spack /quelque/part/paquet

Lister les paquets installés ou leur contenu (voir l'aide pour les options disponibles) :

spacklist 0outils  

Structure interne des paquets

Les paquets sont en fait organisés en 4 fichiers :

pre-install.sh
post-install.sh
files.xz
about.txt

Les paquets sont créés à partir des spécifications Spack, à savoir :

  • les fichiers sont compressés via xz dans une sous-archive CPIO files.xz
  • La structure des répertoires et de leurs permissions est reportée dans pre-install
  • Les commande de post-installation se trouvent dans post-install.sh
  • La description du paquet se trouve dans about.txt