Concepts gestion de paquets
Sommaire
Aperçu
Un système de gestion de paquet est un ensemble d'outils qui fournissent une méthode cohérente pour installer, mettre à jour et supprimer les logiciels sur votre système. Les distributions Linux, dont openSUSE, consistent en un ensemble de milliers de paquets logiciels distincts.
Les logiciels sont distribués à travers les paquets qui sont liés à des métadonnées (metadata) qui contiennent des informations supplémentaires telles que la description du but du logiciel et une liste de dépendences nécessaires pour que le logiciel fonctionne correctement. Ils sont fournis par les dépôts, soit sur un média local (CD, DVD ou disque dur) soit en ligne. Lors de l'installation, les métadonnées sont enregistrées dans une base de données de paquets locale qui est utilisée pour récupérer les paquets logiciels.
Libzypp est l'implémentation openSUSE d'un tel système de gestion de paquets et fournit le gestionnaire de logiciels de YaST comme interface graphique et Zypper comme interface en ligne de commande.
Paquets
Les paquets sont des archives de fichiers qui comportent tous les fichiers qui composent un logiciel (tels que l'application elle-même, les bibliothèques partagées, les paquets de développement qui contiennent les fichiers nécessaires pour construire l'application par rapport à une bibliothèque, ...) et éventuellement, les instructions sur la manière de les faire fonctionner.
Un paquet est intégré proprement au sein de la distribution pour laquelle il a été conçu, en ce qui concerne les chemins d'installation, les dépendances, l'intégration à l'environnement de bureau, les scripts de démarrage corrects pour les serveurs, etc. Pour ces raisons, vous devriez toujours installer des paquets qui ont été conçus pour la distribution que vous utilisez, y compris la version exacte de la distribution. Par exemple, n'installez pas de paquets Fedora sur un système openSUSE, ni de paquets openSUSE 11.1 sur un système openSUSE 11.2
Métadonnées de paquet
Un paquet contient également d'autres informations, communément appelées métadonnées, telles que :
- un résumé,
- une description,
- une liste des fichiers présents dans le paquet,
- la version du logiciel contenu ainsi que le numéro de version du paquet,
- quand, où et par qui il a été intégré,
- l'architecture pour laquelle il a été conçu,
- la somme de contrôle des fichiers présents dans le paquet,
- la licence qui régit le paquet,
- les autres paquets requis pour fonctionner proprement,
- etc.
Dépendances de paquets
Un aspect important des paquets est les relations qu'ils contiennent. Effectivement, les paquets relient également les fichiers à d'autres paquets, vu que les applications ont besoin d'un environnement d'exécution (autres outils, bibliothèques, etc.) pour faire fonctionner l'application correctement. Les dépendances de paquets sont utilisées pour exprimer ces relations.
Par exemple, le paquet A a besoin que les paquets B, C et D soient installés pour fonctionner correctement.
- Les dépendances de paquets sont transitives, ce qui signifie que lorsqu'un paquet A nécessite un paquet B, et que le paquet B a besoin d'un paquet C, le paquet A a également besoin de ce paquet C, ce qui explique pourquoi parfois il vous arrive d'avoir de nombreux paquets à installer alors que vous ne vouliez installer qu'une seule application.
- Les dépendances liées aux bibliothèques (habituellement les paquets dont le nom commence par "lib") sont très courantes et pratiquement chaque application dépend d'un ensemble de paquets de bibliothèques.
Les paquets et les dépendances de paquets sont des aspects importants des distributions Linux (tout comme d'autres systèmes BSD et UNIX) car ils offrent un moyen modulaire d'installer et de gérer un système d'exploitation et ses applications. C'est particulièrement vrai en ce qui concerne les paquets de bibliothèques. Par exemple, le paquet openssl contient des bibliothèques cryptographiques utilisées par de nombreuses applications et d'autres bibliothèques (comme par exemple le cryptage SSL). Quand une nouvelle version de openssl est disponible, toutes les applications qui l'utilisent bénéficieront de ses améliorations par la simple mise à jour de ce paquet vers la nouvelle version.
C'est également un moyen très efficace pour maintenir un système stable et sécurisé : quand une faille de sécurité, un exploit ou un bug affectent une bibliothèque utilisée par une ou plusieurs applications, mettre à jour le paquet le corrigera pour toutes.
Formats de paquets
Dans l'univers des distributions Linux, un logiciel natif est publié empaqueté, essentiellement sous 3 formats possibles.
- tgz (fichiers tar gzip) qui sont essentiellement des archives de code source. Ils peuvent contenir tout ce que le mainteneur du paquet juge nécessaire. À part le format de l'archive lui-même, nécessaire pour extraire les fichiers, il n'y a rien de standardisé dans le contenu d'un fichier tgz. Les fichiers doivent être compilés pour pouvoir exécuter l'application.
- rpm (RPM Package Manager) qui sont des archives pré-compilées. Créé par Red Hat Linux et standardisé par la LSB, ce format est utilisé de nos jours par de nombreuses distributions Linux en tant que système de paquets, y compris par openSUSE.
- deb (Debian) qui sont des archives pré-compilées utilisées par les systèmes basés sur Debian.
Cependant, si les archives préviennent le système des dépendances requises, elles n'offrent pas la possibilité de les gérer et se contentent de présenter le problème à l'utilisateur et le laissent décider de la décision à prendre.
Par exemple, si vous voulez installer un paquet RPM A qui a des dépendances avec le paquet RPM B, RPM n'installera pas automatiquement le paquet B mais se contentera de vous informer qu'il a besoin du paquet B et s'arrêtera. C'est à l'utilisateur d'installer le paquet B et ensuite le paquet A. À présent, imaginons que le paquet B ait des dépendances avec les paquets C et D et le paquet D a des dépendances avec le paquet E etc. Vous finissez par rechercher les dépendances manuelles tout au long de cet arbre géant.
Gestionnaire de paquets
Sur les distributions Linux modernes comme openSUSE, l'installation d'un logiciel est assurée par un gestionnaire de paquets. Le gestionnaire de paquets, qui fonctionne par-dessus RPM, récupère les paquets depuis les dépôts (serveurs, CDs, DVDs etc.), résout les dépendances et les installe sur votre système. Il facilite également la suppression ou la mise à jour des paquets par la suite. Le nombre de paquets disponibles pour l'installation dépend des dépôts que vous avez ajoutés.
Le gestionnaire de paquets natif d'openSUSE est le module YaST Software Management et la ligne de commande Zypper, bien que la distribution soit livrée avec une grande variété de gestionnaires de paquets.
Dépôts de paquets
Avant que les paquets ne soient installés, ils doivent être disponibles dans un dépôt, sur un support physique tel qu'un CD ou un DVD, ou bien en ligne via Internet.
Les dépôts de paquets openSUSE comprennent :
- les dépôts officiels qui incluent les paquets testés et supportés ;
- les dépôts de paquets supplémentaires, tels que Packman et Build Service. Ils fournissent une grande variété de paquets supplémentaires, dont certains sont plus à jour ou ne peuvent pas être inclus dans openSUSE pour des raisons légales, bien qu'ils n'aient été que peu testés.
Voir aussi
- Dépôts de paquets
- Dépôts de paquets supplémentaires
- Mise à jour avec changement de fournisseur
- System upgrade