titre informatique

Avec les systèmes d'exploitation Linux, un logiciel (ou une fonctionnalité) peut s'installer avec des paquets : des archives contenant l'ensemble des fichiers de l'application, la configuration à appliquer au système et la liste des dépendances (bibliothèques et autres paquets nécessaires au fonctionnement de l'application). Sous Debian et ses dérivés (comme Ubuntu), les paquets peuvent se gérer avec différentes commandes.

La commande apt

La commande apt permet de gérer les paquets se trouvant dans les dépôts APT (sources de paquets en ligne).

Installation et suppression des paquets
  • apt install paquet : installation d'un paquet
  • apt remove paquet : suppression d'un paquet sans supprimer les fichiers de configuration
  • apt purge paquet : suppression d'un paquet en supprimant les fichiers de configuration
Mis à jour des dépôts et des paquets installés
  • apt update : mise à jour des dépôts
  • apt upgrade : mise à jour des paquets installés sur le système
  • apt full-upgrade : mise à jour des paquets installés sur le système (en installant de nouveaux paquets si nécessaires)
Nettoyage du système
  • apt autoclean : supprime le cache des paquets périmés
  • apt autoremove : suppression automatique des dépendances inutilisées
Diverses opérations
  • apt show paquet : détails d'un paquet
  • apt list *nom* : liste des paquets dont le nom contient "nom"
  • apt search mot : recherche les paquets dont la description contient le mot recherché
  • apt depends paquet : liste des dépendances d'un paquet


La commande apt-get

La commande apt a été créée principalement pour les utilisateurs finaux. Pour les scripts, il est conseillé d'utiliser la commmande apt-get.

Installation et suppression des paquets
  • apt-get install paquet : installation d'un paquet
  • apt-get remove paquet : suppression d'un paquet sans supprimer les fichiers de configuration
  • apt-get autoremove paquet : suppression d'un paquet et de ses dépendances
  • apt-get purge paquet : suppression d'un paquet en supprimant les fichiers de configuration
  • apt-get autoremove --purge paquet : suppression d'un paquet, de ses fichiers de configuration et de ses dépendances.
Mis à jour des dépôts et des paquets installés
  • apt-get update : mise à jour des dépôts
  • apt-get upgrade : mise à jour des paquets installés sur le système
  • apt-get dist-upgrade : mise à jour des paquets installés sur le système (en installant de nouveaux paquets si nécessaires)
Nettoyage du système
  • apt-get clean : supprime la totalité des paquets dans le cache
  • apt-get autoclean : supprime les paquets dans le cache, sauf ceux ayant un équivalent dans les dépôts
  • apt-get autoremove : suppression automatique des dépendances inutilisées

 

La commande dpkg

En plus des paquets disponibles en ligne, il est également possible d'installer paquets sous forme de fichiers deb. La commande dpkg permet d'installer et supprimer ce type de paquet. Néanmoins, elle ne gère pas les dépendances.

Installation de paquets

  • dpkg -i paquet.deb : installation de paquet .deb
  • dpkg -i -R *.deb : installation de tous les paquets se trouvant dans le répertoire en cours

La commande dpkg ne gérant pas les dépendances, il est ensuite nécessaire d'utiliser la commande apt-get -f install pour compléter l'information.

Suppression de paquets
  • dpkg -r paquet.deb : suppression de paquet.deb (sans supprimer les fichiers de configuration)
  • dpkg -p paquet.deb : suppression de paquet.deb (en supprimant les fichiers de configuration)
Listage des paquets
  • dpkg -l *nom* : liste de paquets contenant le mot nom

 

Les dépôts

Présentation

La liste des dépôts est stockée dans le fichier /etc/apt/sources.list et dans les fichiers .list se trouvant dans le répertoire /etc/apt/sources.list.d sous la forme d'un référentiel :

deb http://www.adressedudepot.tld distribution section1 section2 section3

  • distribution : distribution du système
  • section : version du dépôt (principal, non libre, maintenus par la communauté, etc).
Ajout et suppression de dépôts

Les dépôts peuvent être ajoutés manuellement dans les fichiers de dépôt ou en utilisant la commande add-apt-repository suivie d'un référentiel classique (deb) ou d'un référentiel PPA.

Pour supprimer un dépôt, il suffit de supprimer son référentiel dans le fichier .list (ou supprimer le fichier .list pour supprimer tous les dépôts qu'il contient).

Clé d'authentification

Certains dépôts utilisent des clés pour contrôler l'authenticité et l'intégralité des paquets. Ces clés sont des fichiers téléchargeables avec l'extension .asc ou .gpg et peuvent être installés avec la commande apt-key suivie du nom de la clé.

Néanmoins, la commande apt-key est dépréciée dans certaines versions récentes de systèmes Linux pour manque de sécurité : avec cette commande, les clés sont stockées dans le répertoire /etc/apt/trusted.gpg.d/ et tous les dépôts seront validés par n'importe quelle clé se trouvant dans ce répertoire. Vous devez donc stocker la clé de votre dépôt dans un autre répertoire (/usr/share/keyrings par exemple).

Pour remplacer la commande apt-key :

  • Récupérez le fichier de la clé avec la commande curl ou wget. Ce fichier peut avoir différentes extensions : .asc, .gpg, etc.
  • Vérifiez le format de la clé avec la commande file suivie du nom du fichier de la clé.
  • Si la clé est au format "OpenPGP Public Key", vous pouvez copier directement la clé dans le répertoire /usr/share/keyrings.
  • Si la clé est au format "PGP public key block Public-Key", vous devez convertir la clé avec la commande gpg --dearmor suivie du nom du fichier de la clé. Un fichier .gpg sera généré que vous devez copier dans le répertoire /usr/share/keyrings.

Vous pouvez également faire toutes ces étapes avec une seule commande (si vous êtes sûr du format du fichier de la clé) :

  • Pour un fichier "PGP public key" (en utilisant la commande curl) : curl https://serveur.tld/key/fichier.gpg | gpg --dearmor > /usr/share/keyrings/depot-keyring.gpg
  • Pour un fichier "OpenPGP Public Key" (en utilisant la commande wget) : wget -O /usr/share/keyrings/depot-keyring.gpg https://serveur.tld/key/fichier.gpg

Une fois que votre clé se trouve dans le répertoire des clés, vous devez indiquer dans le fichier .list où est référencé votre dépôt le chemin d'accès au fichier de la clé du dépôt entre crochet à la suite de l'instruction deb : [signed-by=/usr/share/keyrings/fichier.gpg]

Exemple pour le logiciel Signal (clé au format "PGP public key") :

  • Récupération de la clé et conversion : curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/depot-keyring.gpg
  • Ajout du dépôt : echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/signal-desktop-keyring.gpg] https://updates.signal.org/desktop/apt xenial main' | tee -a /etc/apt/sources.list.d/signal-xenial.list

Exemple pour le logiciel Brave (clé déjà convertie au format "OpenPGP Public Key") :

  • Récupération de la clé : curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
  • Ajout du dépôt : echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list