Gestionnaire de paquets

Illustration d’un gestionnaire de paquets utilisé pour télécharger un nouveau logiciel. Les actions manuelles peuvent inclure l’acceptation d’un accord de licence ou la sélection de certaines options de configuration spécifiques au paquet.

Un paquet logiciel est un fichier d’archive contenant un programme informatique ainsi que les métadonnées nécessaires à son déploiement. Le programme informatique peut être en code source qui doit être compilé et construit au préalable. Les métadonnées du paquet comprennent la description du paquet, la version du paquet et les dépendances (autres paquets qui doivent être installés au préalable).

Les gestionnaires de paquets sont chargés de trouver, d’installer, de maintenir ou de désinstaller les paquets logiciels sur commande de l’utilisateur. Les fonctions typiques d’un système de gestion de paquets comprennent :

  • Travailler avec des archiveurs de fichiers pour extraire les archives de paquets
  • Assurer l’intégrité et l’authenticité du paquet en vérifiant leurs sommes de contrôle et leurs certificats numériques, respectivement
  • Rechercher, télécharger, installer ou mettre à jour des logiciels existants à partir d’un dépôt de logiciels ou d’un magasin d’applications
  • Grouper les paquets par fonction pour réduire la confusion de l’utilisateur
  • Gérer les dépendances pour s’assurer qu’un paquet est installé avec tous les paquets dont il a besoin, évitant ainsi « l’enfer des dépendances »

Des défis avec les bibliothèques partagéesEdit

Les systèmes informatiques qui s’appuient sur la liaison dynamique des bibliothèques, au lieu de la liaison statique des bibliothèques, partagent des bibliothèques exécutables d’instructions machine entre les paquets et les applications. Dans ces systèmes, les relations complexes entre différents paquets nécessitant différentes versions de bibliothèques aboutissent à un défi familièrement connu sous le nom de « dependency hell ». Sur les systèmes Microsoft Windows, cette situation est également appelée « enfer des DLL » lorsqu’on travaille avec des bibliothèques liées dynamiquement. Une bonne gestion des paquets est vitale sur ces systèmes. Le système Framework de OPENSTEP était une tentative de résoudre ce problème, en permettant à plusieurs versions de bibliothèques d’être installées simultanément, et aux paquets logiciels de spécifier contre quelle version ils étaient liés.

Fronts pour les paquets compilés localementEdit

Les administrateurs système peuvent installer et maintenir des logiciels en utilisant des outils autres que les logiciels de gestion de paquets. Par exemple, un administrateur local peut télécharger du code source non empaqueté, le compiler et l’installer. Cela peut entraîner une désynchronisation de l’état du système local avec l’état de la base de données du gestionnaire de paquets. L’administrateur local devra prendre des mesures supplémentaires, comme gérer manuellement certaines dépendances ou intégrer les modifications dans le gestionnaire de paquets.

Il existe des outils permettant de s’assurer que les paquets compilés localement sont intégrés dans la gestion des paquets. Pour les distributions basées sur des fichiers .deb et .rpm ainsi que pour Slackware Linux, il y a CheckInstall, et pour les systèmes basés sur des recettes comme Gentoo Linux et les systèmes hybrides comme Arch Linux, il est possible d’écrire d’abord une recette, qui s’assure ensuite que le paquet s’intègre dans la base de données des paquets locaux.

Maintenance de la configurationEdit

Les mises à jour des fichiers de configuration sont particulièrement gênantes avec les mises à jour logicielles. Puisque les gestionnaires de paquets, au moins sur les systèmes Unix, sont nés comme des extensions d’utilitaires d’archivage de fichiers, ils ne peuvent généralement que soit écraser, soit conserver les fichiers de configuration, plutôt que de leur appliquer des règles. Il existe des exceptions à cette règle qui s’appliquent généralement à la configuration du noyau (qui, si elle est cassée, rendra l’ordinateur inutilisable après un redémarrage). Des problèmes peuvent être causés si le format des fichiers de configuration change ; par exemple, si l’ancien fichier de configuration ne désactive pas explicitement les nouvelles options qui devraient être désactivées. Certains gestionnaires de paquets, comme dpkg de Debian, permettent la configuration pendant l’installation. Dans d’autres situations, il est souhaitable d’installer les paquets avec la configuration par défaut, puis d’écraser cette configuration, par exemple, dans le cas d’installations sans tête sur un grand nombre d’ordinateurs. Ce type d’installation préconfigurée est également pris en charge par dpkg.

RepositoriesEdit

Pour donner aux utilisateurs plus de contrôle sur les types de logiciels qu’ils autorisent à être installés sur leur système (et parfois pour des raisons légales ou de commodité du côté des distributeurs), les logiciels sont souvent téléchargés depuis un certain nombre de dépôts de logiciels.

Suppression de mise à niveauEdit

Lorsqu’un utilisateur interagit avec le logiciel de gestion de paquets pour provoquer une mise à niveau, il est habituel de présenter à l’utilisateur la liste des actions à exécuter (généralement la liste des paquets à mettre à niveau, et éventuellement en donnant les numéros de l’ancienne et de la nouvelle version), et de permettre à l’utilisateur soit d’accepter la mise à niveau en bloc, soit de sélectionner des paquets individuels pour les mises à niveau. De nombreux gestionnaires de paquets peuvent être configurés pour ne jamais mettre à niveau certains paquets, ou pour les mettre à niveau uniquement lorsque des vulnérabilités ou des instabilités critiques sont trouvées dans la version précédente, comme défini par l’empaqueteur du logiciel. Ce processus est parfois appelé épinglage de version.

Par exemple :

  • yum le prend en charge avec la syntaxe exclude=openoffice*
  • pacman avec IgnorePkg= openoffice (pour supprimer la mise à niveau d’openoffice dans les deux cas)
  • dpkg et dselect le prennent partiellement en charge grâce au drapeau hold. dans les sélections de paquets
  • APT étend le drapeau hold à travers le mécanisme complexe « pinning » (Les utilisateurs peuvent aussi mettre un paquet sur liste noire)
  • aptitude a des drapeaux « hold » et « forbid »
  • portage supporte cela à travers le paquet.fichier de configuration de masque

Suppression de paquet en cascadeEdit

Certaines des fonctionnalités de gestion de paquets les plus avancées offrent une « suppression de paquet en cascade », dans laquelle tous les paquets qui dépendent du paquet cible et tous les paquets dont seul le paquet cible dépend, sont également supprimés.

Comparaison des commandesEdit

Bien que les commandes soient spécifiques à chaque gestionnaire de paquets particulier, elles sont dans une large mesure traduisibles, car la plupart des gestionnaires de paquets offrent des fonctions similaires.

.

Action zypper pacman apt dnf (yum) portage
installer le paquet zypper dans PKG pacman -.S PACKAGE apt install PACKAGE dnf install PACKAGE emerge PACKAGE
remove package zypper rm -RU PKG pacman -R PACKAGE apt remove PACKAGE dnf remove --nodeps PACKAGE emerge -C PACKAGE ou
emerge --unmerge PACKAGE
remove package+orphans zypper rm -u --force-résolution PKG pacman -Rs PACKAGE apt autoremove PACKAGE dnf remove PACKAGE emerge -c PACKAGE ou
emerge --depclean PACKAGE
mise à jour de la base de données des logiciels zypper ref pacman -Sy apt update dnf check-update emerge --synchro
show updatable packages zypper lu pacman -Qu apt list --upgradable dnf check-update emerge -avtuDN --with-bdeps=y @world ou
emerge --update --pretend @world
delete orphans+config zypper rm -u pacman -Rsn $(pacman -Qdtq) apt autoremove dnf erase PKG emerge --depclean
show orphans zypper pa --orphaned --unneed pacman -Qdt package-cleanup --quiet --leaves --exclude-bin emerge -caD ou
emerge --depclean --pretend
update all zypper up pacman -Syu mise à niveau de l'ordinateur mise à jour du DNF émergence --update --deep --with-bdeps=y @world

Le wiki Arch Linux Pacman/Rosetta offre un aperçu complet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.