Un facteur important qui différencie une distribution Linux est son système de gestion de packages. Dans cet article, vous découvrirez les packages et les gestionnaires de packages sous Linux. Nous vous présenterons les concepts de « packages » et de « gestionnaires de packages » et leur fonctionnement, ainsi que certains gestionnaires de packages courants.
Qu'est-ce qu'un gestionnaire de paquets ?
En termes simples, un « gestionnaire de packages » (ou « gestionnaire de packages ») est un outil qui permet aux utilisateurs d'installer, de supprimer, de mettre à niveau, de configurer et de gérer des packages logiciels sur un système d'exploitation. Un gestionnaire de packages peut être une application graphique comme Software Center ou un outil de ligne de commande comme apt-get ou pacman.
Vous remarquerez que j'utilise beaucoup le mot « package » dans mes tutoriels et articles. Pour comprendre les gestionnaires de packages, vous devez comprendre ce que sont les packages.
Qu'est-ce qu'un sac ?
Un « package » (ou « progiciel ») fait généralement référence à une application, qui peut être une application GUI, un outil de ligne de commande ou une bibliothèque de logiciels (requise par d'autres logiciels). Un package est essentiellement un fichier d'archive contenant un exécutable binaire, des fichiers de configuration et parfois des informations sur les dépendances.
Autrefois, les logiciels étaient installés à partir de leur code source. Vous feriez référence à un fichier (généralement nommé README) pour voir de quels composants logiciels il a besoin et où se trouvent les binaires. Il comprend généralement un script de configuration ou un Makefile. Vous devez compiler le logiciel vous-même ou gérer vous-même toutes les dépendances (certains logiciels nécessitent l'installation d'autres logiciels).
Pour se débarrasser de cette complexité, les distributions Linux ont créé leurs propres formats de packaging qui fournissent aux utilisateurs finaux des binaires prêts à l'emploi (logiciel précompilé) pour installer le logiciel, ainsi que certaines métadonnées (numéro de version, description) et relation de dépendances.
C’est comme préparer un gâteau plutôt que l’acheter.
Vers le milieu des années 1990, Debian a créé le format d'empaquetage DEB (.deb) et Red Hat Linux a créé le système d'empaquetage RPM (abréviation de Red Hat Package Manager) (.rpm). La manière de compiler le code source existe toujours, mais elle est désormais facultative.
Pour interagir avec ou utiliser un système de packaging, vous avez besoin d'un gestionnaire de packages.
Comment fonctionne un gestionnaire de paquets ?
N'oubliez pas qu'un gestionnaire de paquets est un concept général, il n'est pas propre à Linux. Vous trouverez souvent des gestionnaires de packages pour divers logiciels ou langages de programmation. Il existe un gestionnaire de packages PIP réservé aux packages Python. Même l'éditeur Atom possède son propre gestionnaire de packages.
Étant donné que cet article se concentre sur Linux, je commencerai du point de vue de Linux. Cependant, une grande partie des explications présentées ici peuvent également s'appliquer aux gestionnaires de packages en général.
J'ai créé ce diagramme (basé sur SUSE Wiki) afin que vous puissiez facilement comprendre le fonctionnement du gestionnaire de packages.
Presque toutes les distributions Linux disposent d'un « référentiel de logiciels », qui est essentiellement une collection de progiciels. Oui, il peut y avoir plusieurs référentiels de logiciels. Les bibliothèques de logiciels contiennent différents types de progiciels.
Les référentiels de logiciels contiennent également des fichiers de métadonnées, qui contiennent des informations sur le package logiciel, telles que le nom du package, le numéro de version, la description du package et le nom du référentiel de logiciels. C'est ce que vous voyez en utilisant la commande apt show dans Ubuntu/Debian.
Le gestionnaire de packages sur votre système interagira d'abord avec les métadonnées. Le gestionnaire de packages crée un cache local de métadonnées sur votre système. Lorsque vous exécutez l'option de mise à jour de votre gestionnaire de packages (par exemple apt update), il met à jour le cache de métadonnées local en référençant les métadonnées dans le référentiel.
Lorsque vous exécutez la commande d'installation du gestionnaire de packages (telle que apt install package_name), le gestionnaire de packages fera référence à ce cache. S'il trouve les informations sur le package dans le cache, il utilise Internet pour se connecter au référentiel approprié et télécharge le package avant de l'installer sur votre système.
Un package peut avoir des dépendances. Cela signifie que l’installation de packages supplémentaires peut être nécessaire. Les gestionnaires de packages gèrent généralement ces dépendances et les installent automatiquement avec le package que vous installez.
*Le gestionnaire de paquets Linux gérera les dépendances*
De même, lorsque vous supprimez un package à l'aide du gestionnaire de packages, celui-ci le supprimera automatiquement ou vous informera que le système contient des packages inutilisés qui peuvent être nettoyés.
En plus des tâches évidentes d'installation et de suppression, vous pouvez également utiliser le gestionnaire de packages pour configurer les packages et les gérer en fonction de vos besoins. Par exemple, vous pouvez empêcher la mise à niveau d'une certaine version du package lors des mises à jour régulières du système. Votre gestionnaire de paquets peut probablement faire beaucoup plus.
Différents types de gestionnaires de paquets
Les gestionnaires de packages varient en fonction du système de packaging, mais le même système de packaging peut avoir plusieurs gestionnaires de packages.
Par exemple, RPM a des gestionnaires de packages Yum et DNF. Pour DEB, vous disposez de gestionnaires de packages basés sur la ligne de commande tels que apt-get, aptitude, etc.
Gestionnaire de paquets Synaptic
Les gestionnaires de packages ne sont pas nécessairement basés sur la ligne de commande, il existe également des outils graphiques de gestion de packages, tels que Synaptic. Le centre logiciel de votre distribution est également un gestionnaire de packages, même s'il exécute apt-get ou DNF sous le capot.
Conclusion
Je ne veux pas entrer plus en détail sur ce sujet, même si je pourrais continuer, mais cela nuirait à l'objectif de ce sujet - qui est de vous donner une compréhension de base des gestionnaires de paquets sous Linux.
J’ignore pour l’instant les nouveaux formats d’emballage universels comme Snap et Flatpak.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!