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 paquetapt remove paquet
: suppression d'un paquet sans supprimer les fichiers de configurationapt 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ôtsapt upgrade
: mise à jour des paquets installés sur le systèmeapt 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ésapt autoremove
: suppression automatique des dépendances inutilisées
Diverses opérations
apt show paquet
: détails d'un paquetapt 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 paquetapt-get remove paquet
: suppression d'un paquet sans supprimer les fichiers de configurationapt-get autoremove paquet
: suppression d'un paquet et de ses dépendancesapt-get purge paquet
: suppression d'un paquet en supprimant les fichiers de configurationapt-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ôtsapt-get upgrade
: mise à jour des paquets installés sur le systèmeapt-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 cacheapt-get autoclean
: supprime les paquets dans le cache, sauf ceux ayant un équivalent dans les dépôtsapt-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èmesection
: 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
ouwget
. 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