GNU/Linux >> Tutoriels Linux >  >> Linux

APT Package Manager sur Linux expliqué

En tant qu'administrateur système, savoir comment installer , mettre à jour ou supprimer les packages Linux est crucial pour maintenir vos hôtes et serveurs Linux.

Vous devrez peut-être mettre à jour vos packages actuels afin d'obtenir les derniers correctifs de sécurité pour vos serveurs.

D'autre part, vous devrez peut-être configurer un serveur Web HTTP complet afin de déployer un tout nouveau site Web développé par votre équipe d'application.

Parfois, vous voudrez peut-être simplement tester un nouveau logiciel afin de voir s'il correspond à vos besoins, juste pour désinstaller les packages plus tard.

Par conséquent, savoircomment gérer les packages Linux est crucial .

Dans ce didacticiel, nous allons nous concentrer sur la gestion des packages Linux à l'aide du gestionnaire de packages APT.

Tout d'abord, nous allons parcourir un peu d'histoire sur les origines du logiciel Open Source afin de comprendre les bases des packages Linux.

Plus tard, nous nous concentrerons un peu plus sur APT (Outil de package avancé ) et nous allons voir comment vous pouvez compiler vos propres programmes afin d'avoir des installations personnalisées.

Prêt ?

Ce que vous allez apprendre

En lisant ce tutoriel, vous allez découvrir les sujets suivants :

  • Le GNU /Linux projet et les origines du logiciel libre ;
  • Comment programmer l'installation est conçu sur Linux et en quoi il diffère des hôtes Windows ;
  • Quels sont les dépôts de logiciels ? sont et quels sont les différents types de dépôts que vous pouvez rencontrer ;
  • Cache APT guide complet :comment mettre à jour votre cache et comment rechercher des programmes sur votre système ;
  • APT obtient des commandes détaillées :comment installer et supprimer correctement les packages Linux ;

C'est un long programme, alors sans plus tarder, sautons dedans.

Les origines de GNU/Linux expliquées

Avant de détailler comment vous pouvez installer et désinstaller des packages sous Linux, il est très important d'avoir quelques notions de base sur ce que sont GNU et Linux.

Lors de discussions sur Linux, il est assez courant de se référer à Linux en tant que système d'exploitation, mais ce n'est pas tout à fait vrai .

Lorsque nous parlons de systèmes d'exploitation Linux, nous nous référons en fait aux systèmes d'exploitation GNU/Linux.

Qu'est-ce que GNU ?

GNU (abréviation de "GNU pas Unix ") est un système d'exploitation conçu pour fournir un logiciel gratuit facile à acquérir, distribuer et modifier par vous-même.

Aujourd'hui, il est assez courant de considérer Unix (ou du moins GNU) comme un système d'exploitation libre, mais cela n'a pas toujours été le cas.

Par exemple, si vous deviez exécuter le "uname " sur votre système, avec l'option "-o" (pour le système d'exploitation), vous verriez que vous utilisez très probablement un système d'exploitation GNU/Linux.

$ uname -o

Intéressant !

Aux débuts d'Unix, le système d'exploitation Unix n'était pas du tout un logiciel open source gratuit :il était développé par des sociétés telles qu'IBM, HP ou AT&T pour les besoins des entreprises.

Cependant, face à l'essor des logiciels protégés par le droit d'auteur et des distributions sous licence, Richard Stallman, chercheur au MIT, a décidé de développer une alternative UNIX :GNU.

GNU a été conçu pour être un système d'exploitation open source rétrocompatible avec les systèmes d'exploitation Unix.

Sur un système d'exploitation GNU, les commandes (telles que "ls", "cat" ou "gcc") sont entièrement open source.

De plus, GNU est défini comme un "logiciel libre", mais parlons-nous d'argent ? ?

Le logiciel libre expliqué

Comme nous l'avons expliqué précédemment, GNU est autoproclamé être un logiciel libre .

Mais le logiciel "libre" ne fait pas littéralement référence à l'argent, il fait référence aux libertés fondamentales qui sont au cœur de GNU :

  • Liberté d'exécuter des programmes comme vous le souhaitez , quel que soit l'objectif que vous essayez d'atteindre ;
  • Liberté de modifier le programme , préconditionnant un accès complet au code source du programme ;
  • Liberté de redistribuer des copies afin d'aider vos voisins ;
  • Partager vos modifications avec le monde  :de cette façon, vous n'êtes pas limité à vos propres modifications, mais vous pouvez aider des milliers de développeurs à travers le monde.

Ces libertés fondamentales sont liées au concept de copyleft .

Vous pouvez ajouter des règles spécifiques à cet ensemble de règles fondamentales tant qu'elles n'interfèrent pas avec les règles de base elles-mêmes.

Il serait par exemple illégal de prendre du code open source, de le modifier et de le vendre sans fournir le code source aux utilisateurs finaux.

Il s'agit d'une déclaration importante car cela signifie qu'il n'est pas interdit de vendre du code en soi, il est illégal d'empêcher les utilisateurs finaux de bénéficier de leurs droits fondamentaux.

En conséquence, GNU définit non seulement ces règles de liberté fondamentales, mais garantit également que ces droits sont étendus à toutes les versions ultérieures du logiciel.

Dans ce contexte et afin de traiter les contenus protégés par le droit d'auteur, la licence GPL (GNU General Public License) a été créé.

La licence GPL permet d'agréger les différentes règles inhérentes aux logiciels libres et de définir les violations de licence. Une FAQ complète sur la GPL est disponible sur cette page.

Accéder aux packages GNU

Comme vous l'avez probablement déjà compris, les packages GNU sont des packages conçus pour être partagés , modifié et exécuter où vous voulez, à quelque fin que ce soit.

Dans ce contexte, les packages GNU sont accessibles directement sur le site Web de GNU.

Si vous vous rendez sur la page des logiciels du site Web officiel de GNU, vous pourrez voir la liste complète des packages GNU disponibles.

Comme vous pouvez le constater, il s'agit d'une liste assez longue de packages.

L'un des packages les plus populaires est celui de core-utils, fournissant les commandes Linux les plus populaires telles que "ls ", "chat " ou " trouver ".

Et ces commandes peuvent être modifiées et exécutées à volonté !

Tous ces packages sont fournis chaque fois que vous installez un système d'exploitation GNU/Linux, mais que se passe-t-il si vous souhaitez installer un logiciel tiers ?

Pour cela, Linux est conçu pour communiquer avec ce que nous appelons les dépôts de logiciels.

Que sont les référentiels de logiciels Linux ?

Avant de décrire les référentiels de logiciels Linux, il est très important d'avoir quelques informations sur la conception du système d'empaquetage Linux.

Si vous venez d'un environnement Windows, vous avez l'habitude de télécharger des fichiers exécutables (.exe) à partir d'Internet, d'ouvrir un assistant d'installation et de cliquer sur "Suivant" plusieurs fois afin d'installer votre programme.

Sous Linux, ce n'est pas le cas.

Sous Linux, les packages sont téléchargés et installés à partir de référentiels en ligne par un gestionnaire de packages.

Gestionnaire de packages APT sous Linux

Sur les distributions basées sur Debian, les packages sont téléchargés via le gestionnaire de packages APT.

Lorsque nous parlons de packages, nous traitons essentiellement de fichiers d'archive contenant plusieurs fichiers deb utilisés par l'utilitaire dpkg pour installer des programmes.

Alors pourquoi aurions-nous besoin d'APT ?

APT, pour Advanced Package Manage, est responsable du téléchargement, de l'installation, de la mise à jour et de la suppression des packages de votre système.

Mais pourquoi devrions-nous avoir besoin d'un gestionnaire de paquets pour cela ?

Ne pourrions-nous pas installer les programmes nous-mêmes ?

Ce serait difficile car les packages sont liés par des dépendances de packages.

Concept de dépendances de packages

Prenons par exemple l'éditeur VIM sous Linux.

Si vous utilisez une distribution Debian, la page VIM des dépôts Debian est disponible ici.

C'est ici que vous pourrez trouver des informations sur ce package spécifique : quelles fonctionnalités il fournit, qui l'a créé mais surtout de quels packages il dépend.

Sous Linux, la plupart des packages ne sont pas des packages "purs" :ils dépendent d'une grande variété de packages différents afin de fournir des fonctionnalités tierces au programme réel.

Comme vous pouvez le voir en faisant défiler la page, le package VIM dépend de beaucoup d'autres packages.

Comme vous pouvez le voir ici, les dépendances sont divisées en quatre catégories différentes :

  • dépend :comme son nom l'indique, cette dépendance est nécessaire pour que le programme s'exécute. Sans cela, le programme ne peut pas démarrer du tout ;
  • recommande  :sans cette dépendance, le programme pourrait fonctionner mais il ne fournirait pas toutes les fonctionnalités pour lesquelles cet outil est conçu ;
  • suggère  :sans cette dépendance, le programme serait capable de fonctionner et de fournir des fonctionnalités de base, mais ce ne serait pas la version finale de l'outil ;
  • améliore  :cette dépendance peut améliorer l'outil réel en améliorant les performances ou l'affichage, mais elle n'est pas du tout nécessaire.

Vous savez maintenant pourquoi nous utilisons l'outil APT :les dépendances des packages sont résolues pour vous au moment de l'installation.

Maintenant que vous en savez plus sur les packages, examinons ce que sont les référentiels de logiciels .

Architecture de distribution de logiciels Linux

Sous Linux, les logiciels sont distribués via des dépôts de logiciels.

Les référentiels de logiciels sont utilisés afin d'agréger les logiciels gratuits fournis par la communauté.

Les référentiels peuvent être liés à une distribution spécifique.

Ubuntu, Debian, CentOS ou RHEL ont leurs propres dépôts qui sont mis à jour quotidiennement.

Par conséquent, lorsque vous souhaitez installer un nouveau programme, vous interrogez ces référentiels de base afin d'en récupérer les packages.

Si vous souhaitez installer des packages qui ne se trouvent pas sur des référentiels basés sur la distribution, vous devez ajouter vos propres référentiels de confiance à votre système afin d'installer de nouveaux packages.

C'est essentiellement la raison pour laquelle Linux est considéré comme plus sûr que Windows lorsqu'il s'agit d'installer de nouveaux programmes.

À moins que vous n'installiez des packages douteux, vous communiquez la plupart du temps avec des dépôts de confiance où des centaines de développeurs différents examinent le code que vous exécutez sur votre machine.

Cela n'empêche pas la propagation des virus ou des logiciels malveillants, mais cela serait peu probable car plusieurs examinateurs indépendants ont inspecté le code du package.

Notez que les référentiels sont divisés en différentes catégories et que vous devrez peut-être choisir le bon référentiel pour garantir que vous exécutez des versions sûres.

Ces versions incluent "stable ” référentiels, “test ” dépôts et “unstable référentiels".

Remarque  :dans d'autres distributions, ces référentiels peuvent avoir un nom différent (Ubuntu a multivers, univers, principal, etc.)

Par défaut, votre distribution est très probablement liée au référentiel stable (également appelé "main") via le fichier de configuration sources.list.

$ cat /etc/apt/sources.list

Maintenant que vous en savez plus sur les référentiels de logiciels et sur la manière dont votre gestionnaire de packages interagit avec eux, voyons quel est le cache de votre gestionnaire de packages.

Cache APT expliqué

Comme nous en avons discuté précédemment, le gestionnaire de packages APT est responsable du téléchargement des packages depuis Internet (ou des référentiels de packages locaux) afin de les installer.

Cependant, les opérations effectuées par le gestionnaire de packages APT ne sont pas effectuées en ligne tout le temps.

APT gère une base de données interne appelée cache.

Le cache APT est utilisé pour fournir des informations hors ligne sur les packages actuellement installés sur votre système. Il garantit essentiellement que vous êtes en mesure d'accéder aux informations sur les colis sans avoir à être connecté à Internet.

Rechercher des packages dans le cache

Par exemple, vous pouvez rechercher tous les packages liés à Python qui peuvent être stockés dans votre cache APT.

Pour cela, vous devez exécuter la commande "apt-cache" avec le "search ".

$ apt-cache search <search string>

$ apt-cache search python

Astuce :vous pouvez diriger votre recherche de cache avec "moins" afin de voir tous les résultats fournis.

apt-cache recherche python | moins

Outre la recherche de packages spécifiques, le cache APT peut également afficher des détails complets sur un package.

Afficher les informations sur le paquet

Afin d'afficher les informations sur le paquet, vous devez exécuter la commande "apt-cache" avec le "show ".

$ apt-cache show <package_name>

Par exemple, pour avoir plus d'informations sur le paquet gcc (qui est un compilateur GNU), vous taperez

$ apt-cache show gcc

Donc, si nous n'avons pas besoin d'une connexion Internet pour afficher certains détails, cela signifie qu'ils sont stockés quelque part sur notre instance.

Disons par exemple que je souhaite rechercher la page de documentation du cache pour la commande nano.

Par défaut, les informations sur les packages sont stockées dans "/var/lib/apt/lists

$ ls /var/lib/apt/lists

Dans ce répertoire, vous avez accès à un tas de fichiers différents qui stockent des informations sur les packages stockés dans votre système.

Pour le prouver, cherchons le fichier fournissant des informations pour la commande nano.

$ sudo grep -r -A 3 -B 3 -E "Package: nano$" . | less

Comme vous pouvez le voir, de nombreux fichiers contiennent une référence au package nano, mais celui qui m'intéresse est certainement contenu dans le fichier "main amd64" (pour rappel, "main ” signifie stable et "amd64 ” à mon architecture de processeur )

Si vous avez des doutes sur l'architecture de votre CPU, vous exécutez la commande "lscpu".

$ lscpu

Mettre à jour le cache APT

Comme vous l'avez probablement déjà compris, le cache APT fonctionne hors ligne.

Par conséquent, le cache APT doit être mis à jour périodiquement afin de s'assurer que :

  • Vous pointez vers les bons référentiels;
  • Vous obtenez les dernières mises à jour pour les logiciels installés sur votre ordinateur .

Afin de récupérer les mises à jour de votre cache, vous devez exécuter la commande "apt-get update".

$ sudo apt-get update

Note :vous devez être sudo pour mettre à jour votre cache système.

Comme vous pouvez le voir, la commande exécute quelques appels GET vers des référentiels distants afin de récupérer de nouvelles informations.

Lorsque vous mettez à jour vos référentiels, il est important de noter qu'aucun logiciel n'a été mis à jour sur votre ordinateur.

Exécution de la « mise à jour apt-get » ” La commande met uniquement à jour le cache afin d'avoir les dernières informations sur les logiciels, elle ne met pas directement à jour vos programmes.

Afin de mettre à jour vos programmes, vous devez exécuter le "upgrade ” commande.

Mise à jour (mise à niveau) de vos packages locaux

Afin de mettre à jour vos programmes locaux, vous devez exécuter "apt-get" avec le "upgrade ".

$ sudo apt-get upgrade

À un moment donné au cours de la commande, il vous sera demandé si vous souhaitez installer les mises à jour.

Appuyez sur "O ” et appuyez sur Entrée.

Lors de la confirmation, vos programmes seront mis à niveau vers leur dernière version stable.

Joli!

Vous avez réussi à mettre à niveau vos packages à l'aide de la commande de mise à niveau.

La mise à jour de votre cache et la mise à niveau de vos packages actuels sont vraiment sympas, mais que se passerait-il si vous vouliez installer de nouveaux packages sur votre système ?

Dans la section suivante, vous allez voir comment vous pouvez installer de nouveaux programmes sur votre système en utilisant APT.

Installer de nouveaux packages avec APT

Lors de l'installation de nouveaux packages avec APT, vous avez essentiellement deux options :

  • Le package se trouve déjà dans l'un des référentiels auxquels vous êtes lié ;
  • Le package se trouve dans un référentiel distant et vous devez l'ajouter.

Afin de voir si un paquet se trouve déjà dans votre cache APT, vous devez rechercher votre cache.

Dans cet exemple, nous allons prétendre que nous voulons installer le package "gcc".

Voyons d'abord si GCC se trouve déjà dans notre cache APT.

$ apt-cache search --names-only ^gcc$

Comme vous pouvez le voir, le package GCC est directement disponible avec mes référentiels locaux par défaut.

Installation du logiciel trouvé dans le cache

Lorsque le package est directement disponible dans les référentiels par défaut, vous pouvez l'installer en exécutant la commande "apt-get" avec la commande "install ".

Remarque :vous aurez besoin des privilèges sudo pour installer de nouveaux packages sur votre système.

$ sudo apt-get install gcc

Il peut également vous être demandé si vous acceptez d'installer ce package sur votre système.

Appuyez sur "Y" chaque fois que vous êtes invité à répondre à cette question.

Peu de temps après, votre programme devrait être installé et utilisable.

Afin de vérifier que la commande a été correctement installée, vous pouvez exécuter la commande "whereis".

$ whereis gcc

Génial, vous avez correctement installé le compilateur GCC sur votre système !

Installation d'un logiciel non disponible dans le cache

Dans certains cas, vous souhaiterez peut-être installer un logiciel qui n'est pas directement stocké dans votre cache APT.

Pour cette section, nous allons installer Grafana, un tableau de bord open-source qui n'est pas directement disponible dans les packages par défaut.

Note :ceci n'est pas un tutoriel dédié à Grafana, cette partie ne couvrira que les commandes liées à APT.

Tout d'abord, nous devons nous assurer que le paquet n'est pas déjà contenu dans notre cache APT.

$ apt-cache search --names-only ^grafana$
<empty>

Dans ce cas, aucun package par défaut n'est installé pour Grafana, nous devons l'ajouter nous-mêmes.

Ajout de référentiels APT personnalisés

Afin d'ajouter des référentiels APT personnalisés, vous devez comprendre la structure du répertoire des sources APT.

Par défaut, les référentiels sont stockés dans le dossier "/etc/apt".

$ ls -l /etc/apt

Dans ce répertoire, vous avez plusieurs entrées :

  • apt.conf.d :les dossiers de configuration d'APT contenant des fichiers de configuration afin de configurer des proxys par exemple ;
  • auth.conf.d  :peut être utilisé pour stocker les détails d'authentification liés aux proxys ;
  • préférences.d  :peut être utilisé pour définir des priorités pour des référentiels ou des packages spécifiques ;
  • sources. liste  :contient l'ensemble de dépôts par défaut pour votre distribution ;
  • sources.list.d  :un répertoire pouvant contenir des référentiels APT personnalisés ;
  • trusted.gpg.d  :un ensemble de clés GPG auxquelles vous faites confiance pour certifier l'authenticité du téléchargement.

Le "sources.list" est déjà rempli de référentiels par défaut, nous ne voudrons donc peut-être pas modifier ce fichier.

Au lieu de cela, nous allons ajouter un référentiel personnalisé au répertoire sources.list.d.

$ sudo touch /etc/apt/sources.list.d/custom.list

Dans ce fichier nouvellement créé, ajoutez une entrée pour le référentiel personnalisé que vous souhaitez installer.

$ sudo nano /etc/apt/sources.list.d/custom.list

deb https://packages.grafana.com/oss/deb stable main

Afin d'installer les packages en toute sécurité, vous devrez peut-être importer des clés GPG.

$ sudo wget -q -O https://packages.grafana.com/gpg.key | sudo apt-key add -
OK

Remarque  :vous n'aurez peut-être pas besoin d'ajouter une clé GPG pour chaque package, mais cela garantit que le package est installé en toute sécurité.

Maintenant que votre référentiel a été correctement ajouté, mettez à jour votre cache APT afin que les modifications soient appliquées.

$ sudo apt-get update

Maintenant, si vous recherchez votre colis, vous devriez pouvoir le trouver.

$ sudo apt-cache show grafana

En conséquence, vous êtes maintenant prêt à installer votre package.

Pour installer votre package, exécutez simplement le "apt-get " avec la commande "installer ".

$ sudo apt-get install grafana

Génial !

Maintenant, votre package est installé avec succès.

Comme vous pouvez le constater, l'installation d'un logiciel personnalisé est assez différente de l'installation d'un logiciel disponible dans le cache :vous devez ajouter des référentiels personnalisés et éventuellement ajouter des clés GPG.

Maintenant que vous savez comment installer des packages, voyons comment vous pouvez les désinstaller.

Désinstaller des packages avec APT

Lors de la désinstallation de packages à l'aide du gestionnaire de packages APT, vous avez essentiellement deux options :supprimer ou purger .

Suppression de packages à l'aide d'apt-get remove

La première façon de désinstaller le package est d'utiliser le apt-get remove commande.

$ sudo apt-get remove <package>

En utilisant le package grafana que nous avons installé précédemment, cela donnerait

$ sudo apt-get remove grafana

Alors pourquoi aurions-nous besoin d'une fonction de purge ?

Lors de l'utilisation de apt-get remove , les packages sont supprimés mais les fichiers associés au package restent intacts.

Pour le voir, essayez de répertorier les fichiers associés à un paquet sur votre système à l'aide de la commande dpkg.

$ dpkg -L <package>

Comme vous pouvez le voir, les fichiers de configuration sont toujours là, c'est pourquoi vous devez utiliser la purge commande.

Purger les packages à l'aide d'apt-get purge

Pour utiliser la commande de purge, exécutez simplement "apt-get " avec le "purge ".

$ sudo apt-get purge <package>

Maintenant, si vous essayez de voir les fichiers associés à votre package, vous ne pourrez en trouver aucun.

$ dpkg -L <package>
<empty>

Suppression des dépendances avec la suppression automatique

Comme vous l'avez probablement compris, l'intérêt d'utiliser APT est qu'il récupère les dépendances des packages pour vous et les installe correctement.

Par conséquent, chaque fois que vous installez de nouveaux packages, vous risquez de laisser des dépendances en suspens sur votre système.

Afin de supprimer les dépendances pendantes (c'est-à-dire les dépendances qui ne sont plus utilisées), vous devez utiliser l'option de suppression automatique.

Vous pouvez soit le faire pendant la désinstallation un colis

$ sudo apt-get autoremove <package>

Ou vous pouvez le faire après en exécutant la autoremove option sans aucun argument.

$ sudo apt-get autoremove

Conclusion

Dans ce long tutoriel, vous avez appris comment vous pouvez installer et désinstaller paquets à l'aide du gestionnaire de paquets APT.

Vous en avez également appris davantage sur les origines des logiciels open source , d'où il vient et comment le GNU/Linux système d'exploitation est issu des systèmes d'exploitation Unix standard.

Si vous êtes intéressé par l'administration système Linux , nous avons une section complète qui lui est consacrée sur le site Web, alors assurez-vous de la consulter.


Linux
  1. Gestion des packages Linux avec apt

  2. Quel est votre gestionnaire de packages Linux préféré ?

  3. Installation et utilisation du gestionnaire de packages Homebrew sous Linux

  4. Comment installer et utiliser Yarn Package Manager sous Linux

  5. Nix - Un puissant gestionnaire de packages pour Linux et Unix

15 exemples de commandes apt dans Ubuntu / Debian Linux

Aptitude - Outil de gestion de paquets Debian GNU/Linux

Installer le gestionnaire de paquets Synaptic sur Linux

Comment utiliser le gestionnaire de paquets Yum sur Rocky Linux 8

Comment installer Snap Package Manager sur Rocky Linux 8

Comment installer Snap Package Manager dans les distributions Linux