You are here -> Home » Wiki » La Suite Setup

La Suite Setup

Other languages : fr

Logo SetupLa Suite Setup est un ensemble d'outils permettant de gérer les paquets de Logram. Le but de cette collection d'outils est d'apporter du sang neuf dans les gestionnaires de paquets sous GNU/Linux.

Les défauts des autres gestionnaires de paquets

Les autres gestionnaires de paquets, comme APT, RPM ou Pacman ont quelques défauts, certains plus, et certains moins. Setup essaie de corriger ces défauts.

  • Les «Vieux», donc APT et RPM, souffrent du plus de défauts :
    • Ils sont lents, du fait de l'accumulation de fonctionnalités. Heureusement, ce sont également les plus sûrs, quasiment impossibles à casser. Ils sont très robustes
    • Le programme qui installe les paquets (dpkg, rpm) est différent de celui qui gère les dépendances (apt, zypper, urpmi, yum, etc). Cela participe d'ailleurs à la lenteur de ces gestionnaires, et complexifie le code. Le solveur de dépendances doit en effet communiquer avec l'installeur, et une certaine duplication de code a lieu (les deux doivent trouver les dépendances d'un paquet, sauf que l'installeur ne fait que les vérifier).
    • Il existe plein d'outils de gestion, mais pas grand-chose de centralisé. Problème surtout connu par Debian, qui propose apt-get et aptitude pour installer les paquets, mais également apt-file (programme séparé pour gérer ce qu'apt-get devrait savoir faire), apt-mirror et reprepro (incompatibles mais font pourtant la même chose), apt-cache (comme apt-file, ça devrait être dans apt-get ou dpkg), etc.
    • Programmes monolithiques, il est assez complexe de s'interfacer avec eux. Heureusement, APT propose des bibliothèques, comme QApt, qui facilitent le travail. RPM devrait également en fournir.
  • Les «Nouveaux», par exemple Pacman ou PiSi, corrigent pas mal de défauts des vieux, mais ils sont jeunes pour la majorité d'entre eux. Il manque encore quelques fonctionnalités, parfois essentielles (suppression des paquets qui ne sont plus nécessaires, suppression des dépendances inverses).

Les nouveaux sont donc les meilleurs, ce qui expliquerait la montée en puissance de distributions comme ArchLinux (et son Pacman) ou Pardus (et PiSi).

Fonctionnalités principales de la suite Setup

Outre les fonctionnalités classiques (installation, suppression, mise à jour), la Suite Setup propose un certain nombre de fonctionnalités intéressantes qu'on ne trouve pas spécialement partout. La plupart de ces fonctionnalités se trouvent dans le composant libpackage, celles qui se trouvent autre-part sont indiquées.

  • Base de donnée binaire hyper rapide (complexité O(1) pour la majorité des opérations, ce qui veut dire que le temps mis par les outils Setup est indépendant du nombre de paquets gérés), inspirée du format .solv d'OpenSuSE.
  • Communications inspirées de DebConf. Permet aux paquets de poser des questions à l'utilisateur, comme le chemin d'accès d'un fichier, le nom d'un service à redémarrer. Les questions peuvent attendre des réponses de type chaîne de caractère, nombre entier, nombre décimal, choix unique parmi une liste ou choix multiples. Un type de retour est très facile à ajouter, et il est possible à l'avenir d'en ajouter quand le besoin s'en fera ressentir (couleurs, chemin d'accès, date et heure, icône, texte multiligne, etc)
  • Un solveur à hypergraphe. Sous ce nom barbare se cache en fait un solveur capable de trouver toutes les combinaisons de paquets permettant d'effectuer ce que vous avez demandé, sans rien casser dans votre système. Il explore alors ces possibilités en vous proposant des choix quand il faut. Le petit plus Setup est que chaque choix est déjà exploré, ce qui veut dire que vous ne répondez pas dans le vide. Si vous avez le choix entre deux paquets, l'outil Setup utilisé vous indiquera ce que ça impliquera, combien télécharger et installer, ainsi que d'autres informations. Vous pouvez également revenir sur vos choix.
  • Support des traductions des paquets, que ce soit son titre, sa description courte, sa description longue, le texte de ses communications ou son historique.
  • Métadonnées avancées pour les paquets et les fichiers. L'empaqueteur peut définir des attributs pour son paquet et les fichiers qu'il contient (y compris les fichiers qui seront créés). L'utilisateur peut bannir un paquet de l'installation, spécifier comment modifier un fichier, etc. De plus, un paquet peut fournir un texte de licence qui devra être accepté par l'utilisateur avant le téléchargement du paquet.
  • Support de la signature GPG des paquets. En fait, les hashs SHA1 des paquets et de tous les fichiers d'un dépôt sont enregistrés dans un fichier spécial, qui est lui-même signé. Ainsi, pas de vérifications non-nécessaires, mais la sécurité est tout de même maintenue.
  • Création aisée de paquets au moyen d'un unique fichier XML. Néanmoins, chaque étape de la compilation et de la copie des fichiers est maîtrisée, ainsi que des scripts de post- et pre-installation, suppression et mise à jour sur l'ordinateur client. Les triggers (actions différées exécutées une seule fois une fois les paquets installés) sont supportés.
  • Architecture bibliothèque/client pour une réutilisation facile.
  • Gestion des dépendances souples pour l'utilisateur. Le «pesage» des possibilités est effectué par un script en QtScript, ce qui permet à l'utilisateur de modifier ce script pour l'adapter à ses besoins (paquets stables, dernières versions, télécharger le moins possible, etc).

Composants de la Suite Setup

La Suite Setup est composée de plusieurs éléments, dont la description peut se trouver sur la page du produit Setup dans le système de demandes. Voici néanmoins une brève description de ces éléments :

libpackage
Bibliothèque de base permettant de gérer les paquets, les dépôts, et de créer des paquets. Toutes les fonctions de LPM se trouvent ici, LPM ne se charge que de l'affichage.
LPM
Utilitaire en ligne de commande permettant d'utiliser toutes les fonctions de la libpackage.
libpackageui
Bibliothèque de composants graphiques partagés par Pkgui et AppManager, comme l'assistant d'installation, le panneau d'information des paquets, la liste des catégories et les boîtes de dialogue pour les communications.
Pkgui
Utilitaire graphique de gestion des paquets. Interface simple, pas trop éloignée de ce que présente libpackage (comme Synaptic), plutôt réservée aux utilisateurs avancés.
AppManager
Interface graphique de gestion des paquets. Transforme lourdement les données retournées par libpackage pour ne présenter qu'une version d'un paquet à l'utilisateur, avec son icône et son titre. Ressemble à gnome-app-install ou au Ubuntu Software Center.

Documentation de Setup

Voici différentes pages sur ce wiki qui pourraient vous intéresser, à propos de Setup :

  • Architecture interne de libpackage, pour pouvoir vous plonger dans le code source de notre gestionnaire de paquets maison sans avoir le tournis, ou pour apprendre en détail comment fonctionne un gestionnaire de paquets de dernière génétation.
  • Tester LPM et les outils Setup, pour tester notre gestionnaire de paquets quelle que soit votre distribution (nécessite un *NIX, donc pas Windows).
  • Créer un paquet avec LPM, pour créer un paquet installable avec les outils Setup.
  • Gérer un dépôt avec LPM, pour créer un dépôt avec LPM et le gérer, utile pour tester vos paquets (mais pas nécessaire, LPM sait installer des paquets depuis un fichier, mais pas AppManager ni Pkgui).
  • Installer un paquet avec LPM ou les outils graphiques.