logo

Gestionnaire de paquets Linux

Introduction

UN système de gestion de paquets ou gestionnaire de paquets est un groupe d'outils logiciels. Il automatise de manière efficace le processus d'installation, le processus de mise à niveau, le processus de configuration et le processus de suppression des programmes informatiques pour un système d'exploitation de l'ordinateur. UN directeur chargé d'emballage fonctionne avec les packages, les données contenues dans les fichiers d'archives et les distributions de logiciels.

Les packages incluent des métadonnées telles que nom du logiciel, description de son objectif, somme de contrôle (une fonction de hachage cryptographique de préférence), d liste de dépendances, fournisseur, et numéro de version indispensable au bon fonctionnement du logiciel.

  • Les métadonnées sont enregistrées dans la base de données d'un package local lors de l'installation.
  • En règle générale, les gestionnaires de packages gèrent la base de données des informations de version et des dépendances logicielles pour éviter les prérequis manquants et les incompatibilités logicielles.
  • Ils travaillent en étroite collaboration avec les magasins d'applications, les gestionnaires de référentiels binaires et les référentiels de logiciels.
  • Les gestionnaires de packages sont développés pour éliminer le besoin de mises à jour et d'installations manuelles.
  • En particulier, cela peut être utile pour les grandes organisations dont les systèmes d’exploitation combinent généralement des centaines, voire davantage, de progiciels différents.

Fonctions du gestionnaire de packages

Un progiciel peut être défini comme le fichier d'archive combinant un programme informatique et des métadonnées indispensables également au développement. Le programme système peut se trouver dans le code source qui doit d'abord être construit et compilé.

Les métadonnées du package contiennent la version du package, la description du package et les dépendances (packages qui doivent être installés au préalable). De nombreux gestionnaires de packages appartiennent à l'action d'installer, de désinstaller, de maintenir ou de rechercher des packages logiciels sous le commandement de l'utilisateur.

Le système de gestion de paquets contient des éléments typiques les fonctions qui sont mentionnés ci-dessous :

  • Gestion des archiveurs de fichiers pour l'extraction des archives de packages.
  • Assurer l’authenticité et l’intégrité du colis en authentifiant respectivement leurs certificats numériques et leurs sommes de contrôle.
  • Mettre à jour, installer, télécharger ou rechercher des logiciels existants via une boutique d'applications ou un référentiel de logiciels.
  • Combinaison de packages via une fonction pour réduire la confusion de l'utilisateur.
  • Maintenir les dépendances pour garantir qu'un package a été installé avec tous les packages dont il a besoin. Alors, ignorant « l'enfer de la dépendance ».
Gestionnaire de paquets Linux

Frontaux pour les packages compilés (localement)

Administrateurs système peut installer et gérer le logiciel à l'aide de certains outils autres que le logiciel de gestion des packages. Par exemple, un administrateur local peut télécharger le code source (non empaqueté), le compiler, puis l'installer.

Cela peut entraîner une perte de synchronisation de l'état du système local ainsi que de la base de données de l'état du gestionnaire de packages. L'administrateur local serait amené à prendre des mesures supplémentaires comme intégrer manuellement les modifications dans un gestionnaire de packages ou gérer quelques dépendances.

carte vs ensemble

Certains outils sont présents pour garantir que les packages de compilation (localement) sont développés avec la gestion des packages.

VérifierInstaller est disponible pour .rpm ou Distributions basées sur des fichiers .deb et Slackware Linux aussi. Pour hybride des systèmes comme Arch Linux et systèmes basés sur des recettes comme Gentoo Linux, il est possible de spécifier initialement une recette, qui confirme ensuite qu'un package s'inscrit dans une base de données de packages locale.

Défis avec les bibliothèques distribuées

Divers systèmes informatiques qui dépendent de la liaison de bibliothèques dynamiques, plutôt que de la liaison de bibliothèques statiques, distribuent les bibliothèques d'instructions machine (exécutables) entre les applications et les packages.

Dans ces types de systèmes, les relations typiques entre des packages distincts nécessitant des versions de bibliothèque dans un défi appelé « l'enfer de la dépendance ».

Il est également connu sous le nom 'DLL enfer' sur Microsoft Windows lorsqu'il s'agit de bibliothèques liées de manière dynamique. Une bonne gestion des packages est cruciale pour ces systèmes.

Depuis PAS OUVERT , le système-cadre a permis de résoudre ce problème, en permettant l'installation simultanée de plusieurs versions de bibliothèque et en permettant à de nombreux progiciels de décrire à quelle version ils sont liés.

Maintenance des configurations

Les mises à niveau du fichier de configuration sont particulièrement problématiques avec les mises à niveau logicielles. Au moins sous Unix, puisque les gestionnaires de packages sont originaires de l'extension de l'utilitaire d'archivage de fichiers.

Habituellement, ils conservent ou écrasent uniquement les fichiers de configuration, au lieu de leur appliquer des règles. Plusieurs problèmes peuvent survenir lorsque le format du fichier de configuration est modifié. Par exemple, si un ancien fichier de configuration ne désactive pas explicitement les options les plus récentes, celles-ci doivent être affichées. Quelques gestionnaires de paquets comme dpkg de Debian autorisent la configuration au moment de l'installation. Dans d'autres cas, il est souhaitable d'installer des packages en utilisant la configuration par défaut et d'écraser la configuration lors de l'installation (sans tête) sur un grand nombre de systèmes. Ce type d'installation (préconfiguré) est également pris en charge via dpkg.

Suppression de la mise à niveau

Il est traditionnel de fournir à l'utilisateur la liste d'actions à exécuter (généralement la liste des packages à mettre à niveau et de fournir éventuellement les numéros de version nouvelle et ancienne) si un utilisateur coopère avec le logiciel de gestion de packages pour effectuer la mise à niveau.

Il permet à l'utilisateur de sélectionner un seul package pour les mises à niveau ou d'effectuer une mise à niveau en masse. Différents gestionnaires de packages peuvent être configurés pour ne jamais mettre à niveau de nombreux packages, ou pour les mettre à niveau uniquement si des instabilités ou des vulnérabilités critiques sont détectées dans l'ancienne norme, comme spécifié par le progiciel. Parfois, ce processus est appelé épinglage de version.

Par exemple:

miam le soutient avec le exclure=openoffice* syntaxe

Pacman avec la syntaxe Ignorer=openoffice (dans les deux cas, pour supprimer la mise à jour d'OpenOffice)

dselect et dpkg le prennent en charge partiellement par l'indicateur hold dans les sélections de packages.

l'aptitude a 'interdire' et 'prise' drapeaux.

portage le prend en charge par un fichier de configuration, c'est-à-dire paquet.masque.

APT étend le drapeau, c'est-à-dire prise par le complexe 'épingler' méthode (les utilisateurs peuvent également mettre le package sur liste noire).

Dépôts

Pour offrir aux utilisateurs un contrôle supplémentaire sur les types de logiciels qu'ils autorisent à installer sur leur système (parfois pour des raisons pratiques et juridiques du côté du distributeur), le logiciel est parfois téléchargé à l'aide de nombreux référentiels de logiciels.

renommer dans le répertoire Linux

Suppression de packages en cascade

Quelques-uns des aspects les plus développés de la gestion des paquets facilitent 'suppression de paquets en cascade', où chaque package qui dépend du package de destination et chaque package sur lequel repose le package de destination sont également supprimés.

Comparaison des commandes

Cependant, les commandes sont uniques pour tous les gestionnaires de packages spécifiques. Ces commandes sont dans une large mesure traduisibles car la plupart des gestionnaires de packages facilitent les mêmes fonctions.

Prévalence du gestionnaire de packages

Les gestionnaires de packages tels que dpkg sont disponibles dès 1994. Diverses distributions Linux orientées vers les packages binaires s'appuient fortement sur le système de gestion de packages en raison de leur principal moyen de maintenance et de gestion des logiciels.

De nombreux systèmes d'exploitation mobiles comme Windows Phone, iOS (de type Unix) et Android (basé sur Linux) dépendent presque de l'App Store respectif du fournisseur. Par conséquent, ils utilisent leur système de gestion de packages (dédié).

Comparaison avec les installateurs

Souvent, un gestionnaire de paquets est connu sous le nom de 'gestionnaire d'installation'. Cela peut semer la confusion parmi les installateurs et les gestionnaires de packages. Certaines des principales différences sont indiquées ci-dessous :

Critère Directeur chargé d'emballage Installateur
Expédié avec Habituellement, le système d'exploitation Tous les programmes informatiques
Emplacement des informations d'installation Une base de données centrale pour l'installation Entièrement, c'est à la discrétion de l'installateur. Il peut s'agir d'un fichier dans le dossier de l'application ou parmi les dossiers et fichiers du système d'exploitation. Ils peuvent s'inscrire sur la liste d'un programme de désinstallation sans divulguer les informations d'installation.
Portée de la maintenance Potentiellement tous les packages d'un système Juste le produit dans lequel il a été emballé
Développeur Fournisseur de gestionnaire de packages unique Plus d'un fournisseur d'installateurs
Format du colis Une poignée de formats reconnus Il peut y avoir autant de formats que de numéro d'application
Compatibilité du format du package Pourrait être utilisé tant qu'un gestionnaire de packages l'utilise. Soit l'utilisateur ne met pas à niveau un gestionnaire de packages, soit les nouvelles versions du gestionnaire de packages continuent de le prendre en charge. Si le programme d'installation utilise un format d'archive, il est toujours compatible avec celui-ci. Cependant, les installateurs peuvent être influencés par la pourriture des logiciels, comme tout ordinateur.

Comparaison avec l'utilitaire d'automatisation

Presque tous les systèmes de gestion de configuration logicielle représentent le déploiement de logiciels et la création de logiciels de manière distincte. En règle générale, l'utilitaire d'automatisation de construction prend les fichiers de code source qui sont déjà dans un format lisible par l'homme sur un système et accélère la procédure de conversion en un package exécutable (binaire) sur un système similaire.

En règle générale, un gestionnaire de packages exécuté ultérieurement sur quelques autres systèmes télécharge ces packages exécutables (binaires pré-construits) sur Internet, puis les installe.

Cependant, les deux types d’outils incluent plusieurs facteurs communs mentionnés ci-dessous :

  • Le tri topologique du graphe de dépendances est appliqué dans un gestionnaire de packages pour gérer les dépendances entre de nombreux composants binaires.
  • En outre, il est appliqué dans un gestionnaire de build pour gérer la dépendance entre de nombreux composants sources.
  • Divers makefiles fournissent leur support, pas seulement la création d'exécutables.
  • En outre, ils prennent en charge l'installation de make install.
  • Tous les gestionnaires de paquets prennent en charge la traduction du code source (lisible par l'homme) en exécutables binaires, puis l'installent pour la distribution basée sur les sources comme Homebrew, Sorcery, Portage, etc.

Certains outils comme A-A-P et Faire sont développés pour gérer à la fois le déploiement et la construction. Ils peuvent également être utilisés comme gestionnaire de packages ou comme utilitaire d'automatisation de build, ou les deux.

Gestionnaires de paquets de base et leurs formats

Gestionnaire de paquets universel

On l'appelle aussi gestionnaire de référentiel binaire. Ce gestionnaire de packages est un outil logiciel créé pour optimiser le stockage et télécharger les fichiers binaires, les packages et les artefacts produits et utilisés dans un processus de développement logiciel.

Gestionnaires de paquets universels se concentrer sur la normalisation de la mode que les utilisateurs traitent avec chaque type de colis. Ils offrent aux utilisateurs la possibilité d'utiliser des mesures de conformité et de sécurité pour chaque type d'artefact. Ils ont été désignés comme étant au milieu d'un Chaîne d'outils DevOps.

Gestionnaire de paquets Linux

Systèmes logiciels open source et gratuits

Les packages sous licences compatibles et similaires ont existé pour une utilisation sur plusieurs systèmes d'exploitation grâce au comportement des logiciels open source et gratuits.

Ces packages pourraient être distribués et combinés à l'aide de systèmes de packaging complexes et configurables en interne pour gérer plusieurs conflits, dépendances et permutations logicielles spécifiques à la version.

En outre, quelques systèmes de packaging de logiciels open source et libres sont eux-mêmes publiés en tant que logiciels open source et gratuits.

Une différence entre la gestion des packages dans les systèmes d'exploitation comme Windows et Mac OS X et celle des logiciels open source et gratuits, comme Linux est que les systèmes de logiciels open source et gratuits permettent de mettre à niveau et d'installer des packages tiers à partir d'un mécanisme similaire. . Alors que de nombreux gestionnaires de packages de Windows et Mac OS X mettront à niveau les logiciels fournis respectivement par Microsoft et Apple.

La capacité de mise à niveau continue des logiciels tiers est ajoutée en incluant l'URL du référentiel correspondant dans le fichier de configuration de la gestion des packages.

Formats de colis

Tous les gestionnaires de packages dépendent des métadonnées et du format des packages qu'ils peuvent gérer. Les gestionnaires de packages nécessitent que les groupes de fichiers soient regroupés pour le gestionnaire de packages particulier avec des métadonnées appropriées telles que des dépendances.

Une collection principale d'utilitaires gère souvent l'installation générale via ces packages et plusieurs gestionnaires de packages appliquent ces utilitaires pour fournir des fonctionnalités supplémentaires.

Exemple:

  1. miam dépend du régime moteur comme backend. Yum développe la fonctionnalité backend en ajoutant des aspects tels qu'une configuration simple pour maintenir le réseau du système.
  2. Le gestionnaire de paquets synaptic donne une interface graphique en appliquant la bibliothèque de l'Advanced Packaging Tool qui dépend du dpkg.

Extraterrestre peut être défini comme un programme qui traduit entre des formats de packages Linux distincts. Il soutient la conversion entre Slackware (.tgz, .tlz, .tbz, .txz) paquets, Solaris (.pkg), Stampede (.slp), .deb, packages .rpm, et Base standard Linux (LSB) conforme.

Dans plusieurs systèmes d'exploitation mobiles tels que jeu de Google utilise le format de package du Package d'application Android (en bref APK ) tandis que le Windows Store utilise les formats de XAP et APPX. Les deux Windows Store et jeu de Google contiennent des gestionnaires de paquets éponymes.

Gestionnaires de packages au niveau des applications

Il existe quelques gestionnaires de packages (modules complémentaires) pour les systèmes d'exploitation pour les langages de programmation et avec des capacités restreintes où les développeurs ont besoin des bibliothèques actuelles. Les gestionnaires de packages au niveau de l'application se concentrent sur la petite partie du système logiciel contrairement aux gestionnaires de packages au niveau du système.

En règle générale, ils résident dans une arborescence de répertoires. Il n'est pas organisé par un gestionnaire de packages au niveau du système comme /usr/local/fink ou c:cygwin. Cependant, ce n'est peut-être pas la condition pour un gestionnaire de packages qui fonctionne avec des bibliothèques de programmation, provoquant un conflit possible car les deux gestionnaires de packages peuvent interrompre les mises à niveau et demander à 'propre' le fichier.