Vous êtes-vous déjà demandé comment Linux gère les paquets – en les téléchargeant, en les installant et en les supprimant ? Tout cela relève de la gestion des paquets Linux.
Linux étant un logiciel libre, vous pouvez trouver de nombreux gestionnaires de paquets. Aujourd’hui, nous avons l’occasion de découvrir les gestionnaires de paquets Linux en détail.
Tout au long de ce sujet, nous apprendrons les concepts fondamentaux entourant la gestion des paquets Linux, y compris la définition du gestionnaire de paquets Linux, ses concepts fondamentaux et son fonctionnement.
Commençons par le commencement.
Qu’est-ce que le gestionnaire de paquets Linux ?
Un gestionnaire de paquets Linux est un ensemble de logiciels ou d’outils qui permettent à l’utilisateur de gérer efficacement les paquets. L’utilisateur peut installer, mettre à niveau, supprimer et configurer des paquets à l’aide du gestionnaire de paquets pris en charge sur le système d’exploitation Linux.
Du point de vue fonctionnel, un gestionnaire de paquets traite les paquets, un fichier d’archive contenant des programmes informatiques, et d’autres fichiers essentiels au fonctionnement, tels que les métadonnées des paquets. Les métadonnées des paquets fournissent des informations sur les paquets, notamment leur description, leur version et leurs dépendances.
Cela vous semble confus ? Clarifions cela en découvrant ci-dessous les concepts de base associés au gestionnaire de paquets.
Apprendre les concepts de base de la gestion des paquets
Cette section examine les concepts de base de la gestion des paquets, y compris les paquets, les dépendances et les dépôts.
#1. Les paquets
Un paquet est au cœur du système d’exploitation Linux. Techniquement, il s’agit d’un fichier d’archive contenant un fichier binaire exécutable, un fichier de configuration associé et des informations sur les dépendances nécessaires à son bon fonctionnement.
Pour simplifier, vous pouvez considérer un paquet comme un logiciel ou une application qui peut fonctionner sur le système d’exploitation Linux. Il peut s’agir d’une application orientée ligne de commande ou d’une application GUI. Un paquet peut également servir de dépendance pour l’exécution d’autres programmes logiciels.
Une autre caractéristique importante des paquets est qu’ils sont précompilés, ce qui signifie que le gestionnaire de paquets n’a pas besoin de compiler le code source. Si vous regardez dans le passé, vous verrez que les logiciels doivent être compilés manuellement.
- L’utilisateur doit d’abord consulter le fichier README, trouver toutes les dépendances, puis les télécharger et les installer manuellement.
- Généralement, un fichier makefile ou un script est inclus pour faciliter l’ensemble du processus. Cette procédure était fastidieuse et sujette à des erreurs.
Pour faciliter le processus de gestion des logiciels ou des services, Linux a introduit son système de gestion des paquets.
#2. Dépendances
Le système d’exploitation Linux est complexe. Il se compose de plusieurs logiciels qui dépendent les uns des autres. Pour qu’un logiciel fonctionne, il a besoin d’un autre logiciel ou paquetage.
Essayons de comprendre cela du point de vue du développement. Si vous prenez n’importe quel projet open-source, vous verrez qu’il utilise des bibliothèques open-source. Après tout, il n’est pas judicieux de tout développer à partir de zéro – il n’est pas nécessaire de réinventer la roue.
Ainsi, chaque fois que vous installez un paquetage, il est accompagné d’une liste de dépendances. Le gestionnaire de paquets recherche la liste des dépendances et installe tous les paquets ou ceux qui manquent.
#3. Les dépôts
Les dépôts sont des lieux virtuels en ligne qui répertorient tous les paquets. Ces dépôts sont accessibles via Internet et aident l’utilisateur de Linux à accéder aux paquets nécessaires à l’installation du logiciel.
Avantages de l’utilisation d’un système de gestion des paquets
L’utilisation d’un système de gestion des paquets présente de nombreux avantages. En voici quelques-uns :
- Il vous permet d’installer facilement de nouveaux paquets.
- Avec un système de gestion des paquets, vous pouvez supprimer les anciennes applications de manière adéquate.
- Réinstaller clairement les paquets. La réinstallation des paquets est une pratique courante chez les développeurs, car elle permet de s’assurer que les configurations ou les fichiers défectueux sont corrigés automatiquement, sans qu’il soit nécessaire de procéder à un débogage manuel. Avec un système de gestion de paquets approprié, l’administrateur peut réinstaller le logiciel en toute confiance, car le système de gestion s’occupe de tout.
- Gardez facilement vos paquets déjà installés à jour sans aucune intervention manuelle. Vous pouvez configurer la mise à jour pour qu’elle s’exécute automatiquement tous les jours, ce qui garantit que votre système est protégé contre les vulnérabilités et expositions communes (CVE) ou les nouveaux exploits.
Nous allons maintenant voir comment fonctionne le gestionnaire de paquets.
Comment fonctionne le gestionnaire de paquets ?
Le gestionnaire de paquets est au cœur du système d’exploitation Linux. Cependant, il est également disponible sur Linux.
Les gestionnaires de paquets sont omniprésents, y compris dans les éditeurs visuels tels qu’Atom et Visual Studio Code, qui ont leur propre gestionnaire. Parmi les autres gestionnaires de paquets populaires, citons PIP, un gestionnaire de paquets Python, npm, un gestionnaire de paquets JavaScript, etc.
Lisez aussi : Qu’est-ce que Chocolatey et comment l’installer ?
Pour qu’un gestionnaire de paquets fonctionne, il doit avoir accès à un référentiel fonctionnel. Ce référentiel logiciel répertorie les paquets. Chaque paquet contient des métadonnées, ce qui facilite sa gestion par le gestionnaire de paquets.
Ainsi, la prochaine fois que vous utiliserez le gestionnaire de paquets pour rechercher un paquet, il utilisera les métadonnées du référentiel pour en savoir plus sur le paquet, comme son nom, sa description et sa version.
Lors de l’interaction initiale, le gestionnaire de paquets du système crée un cache local de métadonnées, qui sera utilisé ultérieurement lors de l’exécution d’actions telles que “update” — en exécutant des commandes telles que apt update.
De même, si vous souhaitez installer un paquet, le gestionnaire de paquets recherchera des informations dans le cache de métadonnées local et exécutera la commande en fonction de ces informations.
Par exemple, s’il trouve le paquet que vous recherchez, il essaiera de l’installer en se connectant au dépôt et en le téléchargeant sur le système.
Ensuite, il recherchera les dépendances nécessaires à l’installation du paquet. Si le paquet a des dépendances, il les installera automatiquement sans intervention de l’utilisateur.
Le gestionnaire de paquets peut ensuite effectuer d’autres actions, notamment réinstaller les paquets, les supprimer et les mettre à niveau. Le plus intéressant dans tout cela, c’est que tout est configurable. Par exemple, vous pouvez configurer les paquets critiques pour votre projet afin qu’ils soient mis à jour lorsque vous le faites vous-même.
En bref, nous pouvons résumer les fonctions des gestionnaires de paquets comme suit :
- S’assurer que les paquets sont authentiques. Ils veillent également à ce que l’intégrité des paquets soit préservée en procédant à une authentification par somme de contrôle et par certificat numérique.
- Automatiser la combinaison des paquets pour faciliter leur utilisation.
- Veillez à installer toutes les dépendances afin d’éviter l’enfer des dépendances
- Gérer les paquets, y compris le téléchargement, la recherche et l’installation de logiciels nouveaux ou existants.
Gestionnaires de paquets populaires et leur comparaison
Linux offre l’accès à de nombreux bons gestionnaires de paquets, dont APT, YUM, DNF, Pacman, Zypeer et Portage. Nous allons les passer en revue ci-dessous.
#1. Advanced Package Tool (APT)
APT est l’un des gestionnaires de paquets Linux les plus populaires, car il est fourni avec Ubuntu et d’autres distributions basées sur Debian.
Il utilise un outil de gestion de paquets dkpg et un format de fichier de paquet .deb. Il se construit au-dessus de dkpg et agit comme un frontal pour le gestionnaire de paquets dkpg. Avec APT, vous pouvez installer, rechercher, supprimer et gérer des paquets .deb.
Parmi les commandes d’APT figurent apt, apt-cache et apt-get.
Voici quelques exemples en action.
#install package
sudo apt install nom_du_paquet
#remove package
$ sudo apt remove nom_du_paquet
#purge complète du paquet
$ sudo apt purge nom_du_paquet
# Supprimez les dépendances restantes
$ sudo apt autoremove
#upgrade
$ sudo apt upgrade
# mettre à jour un seul paquet
$ sudo apt upgrade nom_du_paquet
#2. DPKG
DPKG est l’acronyme de Debain-based package management system (système de gestion de paquets basé sur Debain). Le gestionnaire de paquets utilise l’extension .deb. Contrairement à APT, il ne peut pas installer automatiquement les paquets et leurs dépendances.
Pour installer un paquet avec dpkg, vous devez utiliser la commande suivante.
$ dkpg -i nom_du_paquet.deb
De même, vous pouvez supprimer un paquet en exécutant la commande suivante.
$ dkpg -r nom_du_paquet
#3. YUM
YUM est l’abréviation de “Yellow Dog Updater, Modified” YUM a un format de fichier de paquetage .rpm et est disponible dans des distributions telles que Red Hat Enterprise Linux, CentOS et Fedora 21.
Comme APT, YUM est un gestionnaire de paquets de haut niveau, mais il utilise RPM (RPM Package Manager) comme outil de gestion de paquets sous-jacent. Il offre une interface facile à utiliser.
Pour installer un paquetage dans YUM, vous devez exécuter la commande suivante
$ yum install nom_du_paquet
De même, vous pouvez supprimer le paquet en exécutant : $ yum remove nom_du_paquet
$ yum remove nom_du_paquet
Pour mettre à jour un paquet, exécutez : $ yum update nom_du_paquet
$ yum update nom_du_paquet
YUM est capable de résoudre les dépendances et de récupérer les mises à jour pendant l’installation.
#4. DNF
DNF est l’abréviation de Dandified YUM. C’est un successeur de YUM et le remplace dans la plupart des cas. Comme YUM, DNF utilise le paquetage RPM comme gestion sous-jacente des paquets. Cependant, il offre une meilleure documentation, une résolution plus rapide des dépendances, des performances améliorées, etc.
#5. RPM
Le gestionnaire de paquets Red Hat (RPM) est utilisé dans les systèmes d’exploitation Linux basés sur Red Hat. Par exemple, vous pouvez trouver RPM dans CentOS et Fedora. RPM utilise une extension .rpm.
Pour effectuer une installation à l’aide de RPM, vous devez exécuter la commande suivante :
$ rpm -i nom_du_paquet_rpm
Pour supprimer un paquet, exécutez : $ rpm -e nom_du_paquet_rpm
$ rpm -e nom_du_paquet.rpm
Et pour mettre à jour un paquet, lancez : $ rpm -e nom_du_paquet.rpm
$ rpm -e nom_du_paquet
#6. Pacman
Pacman est le gestionnaire de paquets pour les systèmes d’exploitation Linux basés sur Arch, tels que Arch et Manjaro. Il utilise le format de fichier .tar.xz.
Dans ce format, les paquets sont stockés et distribués dans des paquets compressés. Les paquets sont ainsi plus petits et donc plus faciles à distribuer et à installer. Pacman s’appuie sur le système de construction d’Arch (ABS) pour installer les paquets.
Dans Pacman, vous pouvez l’installer avec la commande suivante :
$ pacman -S nom_du_paquet
De même, vous pouvez mettre à jour tous les paquets du système à l’aide de la commande suivante.
$ pacman -Syu
Ensuite, pour supprimer un paquet dans Pacman, utilisez la commande suivante :
$ pacman -Rs nom_du_paquet
#7. Zypper
Zypper est le gestionnaire de paquets pour openSUSE. Il s’agit d’un outil CLI qui gère les paquets dans la distribution Linux openSUSE.
Il utilise un format de fichier de paquetage .rpm, similaire à YUM et DNF. Cependant, vous vous appuierez ici sur l’interface de Zypper, qui utilise la bibliothèque ZYpp libzypp. Zypper est donc plus rapide que les autres gestionnaires de paquets.
#8. Portage
Portage est le gestionnaire de paquets de la distribution Gentoo. Le format de fichier de paquetage dans Portage est .tbz2 — une archive tar compressée ou un script shell e-build.
Portage fonctionne différemment des autres gestionnaires de paquets de notre liste. Ici, Portage utilise des paquets binaires précompilés. Les paquets sont distribués par le biais d’e-builds – un script shell typique. Vous disposez également de l’outil Emerge CLI, qui gère tous les scripts shell pour installer, mettre à jour ou supprimer des paquets.
Quel gestionnaire de paquets Linux choisir ?
La plupart des gestionnaires de paquets sont autonomes. Dans la plupart des cas, vous devez vous contenter de la distribution Linux que vous utilisez. Si vous débutez, vous devrez probablement utiliser APT.
Les utilisateurs avancés peuvent vouloir utiliser d’autres gestionnaires de paquets. Cependant, l’objectif final est toujours d’avoir une meilleure gestion des logiciels. Vous pouvez donc choisir le gestionnaire de paquets de votre choix, en fonction de vos besoins.
Conseils pour une gestion efficace des logiciels à l’aide des gestionnaires de paquets
En tant que développeur, vous devez utiliser les gestionnaires de paquets pour une gestion efficace des logiciels. Cela profitera à votre processus de développement logiciel, en améliorant votre productivité et votre flux de travail.
L’avantage le plus important est que vous n’avez pas à vous soucier de l’enfer des dépendances, une situation dans laquelle le logiciel n’a pas accès aux paquets dont il a besoin pour fonctionner.
Les meilleures pratiques pour utiliser la gestion des paquets sont les suivantes
- Créez et gérez un fichier de configuration adéquat répertoriant tous les paquets nécessaires. En plus des paquets, mentionnez la version des paquets afin de vous assurer qu’aucun conflit ne se produira lors de la mise en œuvre. Le simple fait de conserver un fichier de configuration peut vous éviter des environnements incohérents.
- Utilisez des gestionnaires de paquets pour mettre à jour vos paquets à la dernière version. Vous éviterez ainsi les exploits de type “zero-day”, car la dernière version contient des correctifs de sécurité. Vous aurez également accès à de nouvelles fonctionnalités et à des corrections de bogues. Cependant, avant de mettre à jour les paquets, exécutez un environnement de test pour voir si les nouveaux paquets ne cassent rien. La meilleure façon de procéder est d’automatiser le processus.
- Créez des environnements virtuels pour améliorer la gestion des paquets et de leurs dépendances.
- Supprimez des paquets pour améliorer les dépendances. L’allègement des dépendances des paquets améliorera la sécurité et rationalisera votre projet.
- Créez une documentation appropriée sur les dépendances. Ce faisant, vous vous épargnerez des heures de souffrance lors de la gestion des paquets. Mentionnez toujours la version et détaillez-la autant que possible. Cela aidera les nouveaux développeurs à prendre le train en marche et améliorera également la maintenance.
Nous allons maintenant voir comment utiliser un gestionnaire de paquets.
Comment utiliser un gestionnaire de paquets ?
Dans cette section, nous allons voir des exemples d’utilisation d’un gestionnaire de paquets. Nous utiliserons l’outil Advance Package Tool (APT) pour simplifier les choses. Vous utiliserez probablement APT comme premier gestionnaire de paquets.
Installation des paquets
Pour installer un paquet, vous devez utiliser la commande suivante.
sudo apt install nom-du-paquet
Installons gimp à l’aide de la commande suivante.
$ sudo apt install gimp
Recherche de paquets
Si vous n’êtes pas sûr de la disponibilité d’un paquet, vous pouvez le rechercher sur le dépôt en ligne.
Par exemple, si vous recherchez un logiciel de montage vidéo, vous devrez le rechercher comme suit.
sudo apt search "video image"
#Sortie
Tri... Terminé
Recherche en texte intégral... Terminé
libgavl-dev/jammy 2.0.0~svn6298-1 amd64
bibliothèque audio et vidéo de bas niveau - fichiers de développement
libgavl-doc/jammy 2.0.0~svn6298-1 all
bibliothèque audio et vidéo de bas niveau - fichiers de documentation
libgavl-ocaml/jammy 0.1.6-1build3 amd64
Interface OCaml de la bibliothèque gavl
libgavl-ocaml-dev/jammy 0.1.6-1build3 amd64
Interface OCaml de la bibliothèque gavl
libgavl2/jammy 2.0.0~svn6298-1 amd64
bibliothèque audio et vidéo de bas niveau - fichiers d'exécution
La syntaxe est la suivante.
sudo apt search "terme de recherche" $ sudo apt search "terme de recherche" $ sudo apt search "terme de recherche
Recherche des dépendances d'un paquet
Vous pouvez également utiliser le gestionnaire de paquets pour trouver les dépendances d'un paquet que vous souhaitez installer. Pour obtenir la liste des dépendances d'un paquet, exécutez simplement la commande suivante.
sudo apt depends nom-du-paquet
Voyons quels sont les paquets dont dépend le logiciel gimp.
$ sudo apt depends gimp
#sortie
gimp
Dépend de : libgimp2.0 (>= 2.10.30)
Dépend de : libgimp2.0 (<= 2.10.30-z)
Dépend de : gimp-data (>= 2.10.30)
Dépend de : gimp-data (<= 2.10.30-z)
Dépend de : graphviz
Dépend de : xdg-utils
Dépend de : libaa1 (>= 1.4p5)
Dépend de : libbabl-0.1-0 (>= 1:0.1.78)
Dépend de : libbz2-1.0
Dépend de : libc6 (>= 2.34)
Dépend de : libcairo2 (>= 1.12.2)
Dépend de : libfontconfig1 (>= 2.12.6)
Dépend de : libfreetype6 (>= 2.2.1)
Dépend de : libgcc-s1 (>= 3.3.1)
Dépend de : libgdk-pixbuf-2.0-0 (>= 2.30.8)
Dépend de : libgegl-0.4-0 (>= 1:0.4.34)
Dépend de : libgexiv2-2 (>= 0.10.6)
Dépend de : libglib2.0-0 (>= 2.56.2)
Dépend de : libgs9 (>= 9.10~dfsg)
Dépend de : libgtk2.0-0 (>= 2.24.10)
Dépend de : libgudev-1.0-0 (>= 167)
Dépend de : libharfbuzz0b (>= 0.6.0)
Dépend de : libheif1 (>= 1.8.0)
Dépend de : libilmbase25 (>= 2.5.7)
Dépend de : libjpeg8 (>= 8c)
Dépend de : libjson-glib-1.0-0 (>= 1.5.2)
Dépend de : liblcms2-2 (>= 2.9)
Dépend de : liblzma5 (>= 5.1.1alpha 20120614)
Dépend de : libmng2 (>= 2.0.2)
Dépend de : libmypaint-1.5-1 (>= 1.5.0)
Dépend de : libopenexr25 (>= 2.5.7)
Dépend de : libopenjp2-7 (>= 2.0.0)
Dépend de : libpango-1.0-0 (>= 1.29.4)
Dépend de : libpangocairo-1.0-0 (>= 1.29.4)
Dépend : libpangoft2-1.0-0 (>= 1.29.4)
Dépend : libpng16-16 (>= 1.6.2-1)
Dépend de : libpoppler-glib8 (>= 0.44.0)
Dépend de : librsvg2-2 (>= 2.32.0)
Dépend de : libstdc 6 (>= 5.2)
Dépend de : libtiff5 (>= 4.0.3)
Dépend de : libwebp7
Dépend de : libwebpdemux2
Dépend de : libwebpmux3
Dépend de : libwmf0.2-7 (>= 0.2.8.4)
Dépend de : libx11-6
Dépend de : libxcursor1 (>> 1.1.2)
Dépend de : libxext6
Dépend de : libxfixes3
Dépend de : libxmu6
Dépend de : libxpm4
Dépend de : zlib1g (>= 1:1.1.4)
Casse : gimp-plugin-registry (<< 7.20140602 nmu1~)
Recommande : ghostscript
|Suggère : gimp-help-fr
Suggère :
gimp-help-ca
gimp-help-de
gimp-help-el
gimp-help-fr
gimp-help-es
gimp-help-fr
gimp-help-it
gimp-help-ja
gimp-help-ko
gimp-help-nl
gimp-help-nn
gimp-help-pt
gimp-help-ru
gimp-help-sl
gimp-help-sv
Suggestion : gimp-data-extras
Suggestion : gvfs-backends
Suggestion : libasound2
liboss4-salsa-asound2
Remplace : gimp-plugin-registry (<< 7.20140602 nmu1~)
Supprimer des paquets
Vous pouvez également supprimer des paquets si vous le souhaitez. Pour supprimer un paquet, vous devez utiliser la commande suivante.
sudo apt remove nom-du-paquet
Ainsi, si vous souhaitez supprimer le paquet gimp, vous devrez exécuter la commande suivante.
$ sudo apt remove gimp
Cependant, cette commande ne supprime pas les dépendances ou la configuration du paquet. Pour le supprimer complètement, vous devrez utiliser l’option –purge.
$ sudo apt remove nom-du-paquet --purge
$ sudo apt remove gimp --purge
Mise à jour des paquets système
Pour mettre à jour les paquets système, vous pouvez exécuter la commande suivante.
sudo apt update && sudo apt upgrade -y
Conclusion
Les gestionnaires de paquets sont au cœur de toute distribution Linux. Il s’agit d’un élément essentiel qui dicte la manière dont vous gérez les paquets sous Linux. Avec un gestionnaire de paquets, vous n’avez pas à vous soucier des dépendances ou à rechercher manuellement les paquets à installer.
Les gestionnaires de paquets tels qu’APT sont faciles à utiliser et s’occupent de la plupart des tâches fastidieuses, ce qui vous permet de vous concentrer sur l’essentiel, à savoir un meilleur développement logiciel et un meilleur flux de travail.