Table des matières

apt-get

Introduction

apt-get est un gestionnaire de paquets en console.
À ce titre, c'est un outil qui permet de vous informer, d'installer, de supprimer et de mettre à jour vos paquets.
De façon général, il gère la mise à jour de votre système et s'utilise pour cela en super-utilisateur alors qu'il vous informe sur ceux-ci en simple utilisateur.

Nota important :
N'hésitez pas à respecter l'usage de simple utilisateur lorsque cela vous est permis, quitte à ouvrir une seconde session console, bien des erreurs vous seront évitées ainsi, sûr ! 8-)

apt-get en ligne de commande, équivaut (en mieux) à Synaptic en graphique !

Bien sûr, les modifications apportées par l'un sont parfaitement reconnues par l'autre ainsi que par aptitude et vice et versa entre tous ces outils.

Vous pouvez utiliser la plupart des commandes décrites dans la commande apt-get avec la commande aptitude.

Mettre à jour la liste des paquets disponibles (Update)

Cette opération a deux buts bien précis :

  1. Rechercher les méta-données d'une archive depuis l’archive distante.
  2. Reconstruire et mettre à jour les méta-données locales pour qu'elles puissent être utilisées par APT.
apt-get update
Si vous n'avez pas faites une mise à jour depuis plus de 24H, vous devez impérativement l'exécuter avant toute installation.
Pour mettre à jour le système, cette commande doit être suivie de la commande upgrade ou dist-upgrade dont les détails sont donnés ci-dessous

C'est une précaution indispensable dans le cas d'une testing ou unstable où les mises à jour sont très fréquentes (lire quotidienne).

Remarque : on a parfois besoin d'installer la version d'un paquet qui n'est plus présente dans les dépôts. On peut alors utiliser une image des dépôts prises à un moment précis : un snapshot.

--fix-broken

Voir dans le man apt-get :

man apt-get
-f, --fix-broken
           Correction ; cette option demande de réparer un système où existent des dépendances défectueuses. Utilisée avec install ou remove, elle peut exclure un
           paquet pour permettre de déduire une solution viable. Tout paquet spécifié doit complètement corriger le problème. Cette option est quelquefois
           nécessaire lorsque l'on exécute APT pour la première fois ; APT interdit les dépendances défectueuses dans un système. Il est possible que la structure
           de dépendances d'un système soit tellement corrompue qu'elle requiert une intervention manuelle (ce qui veut dire la plupart du temps utiliser
           dselect(1) ou dpkg --remove pour éliminer les paquets en cause). L'utilisation de cette option conjointement avec -m peut produire une erreur dans
           certaines situations. Élément de configuration : APT::Get::Fix-Broken.
Utilisation
apt-get install -f

Installation d'un Logiciel

apt-get install LeNomDuLogiciel

Pour plus de précaution, vous pouvez ajouter l'option -s (comme simulation) pour simuler l'installation du logiciel, ainsi vous pourrez contrôler les éventuels logiciels & dépendances installées ou désinstallées.

apt-get install -s lenomdulogiciel

Désinstallation d'un logiciel

apt-get remove lenomdulogiciel

Pour une désinstallation complète (avec les fichiers de configurations) vous pouvez ajouter l'option --purge

apt-get remove --purge nomdulogiciel

Nettoyer le cache

Les paquets téléchargés avant installation sont stockés dans /var/cache/apt/archives. Ils y restent ad vitam aeternam. Ce dossier peut donc rapidement devenir encombrant et faire plusieurs Giga-octets. Utilisez la commande du dans un terminal user ainsi :

du -h /var/cache/apt/archives

vous serez surpris ! ;-)

Faire un petit nettoyage

La commande ci-dessous va supprimer uniquement les paquets dont le numéro de version est obsolète par rapport à ceux des miroirs (les vieux trucs quoi)

apt-get autoclean

Faire le ménage de printemps

clean

La suivante videra entièrement le contenu du cache.

apt-get clean

--purge autoremove

Et depuis lenny, il s'est ajouté l'option --purge autoremove qui supprime les paquets installés automatiquement mais devenus inutiles :

 apt-get --purge autoremove

D'après Thom1, merci !

Se renseigner sur les paquets

Gérer son système globalement

Si tout se passe bien, et qu'on est en 100% stable, il ne devrait jamais y avoir de différence entre upgrade et dist-upgrade, sauf pour les mises à jour entre différentes stables (voir la migration pas à pas)

upgrade - Mise à jour de surface

apt-get upgrade

Utilisation

upgrade ne supprime pas les paquets qui entravent les mises à jour mais il marque quand même les dépendances inutiles comme à supprimer et qui seront supprimées définitivement par la commande autoremove et du coup, les mises à jour peuvent être partielles mais au moins, on est sûr qu'il ne vire aucun paquet qu'on utilise.

upgrade va essayer de mettre à jour ce qu'il peut sans rien casser, il est plus sûr pour les débutants qui n'ont pas le réflexe de lire la liste des paquets supprimés.

dixit le captnfab sur le forum df :

dist-upgrade Mise à jour complète

apt-get dist-upgrade

Utilisation

Cette commande est moins conservatrice et peux causer des résultats inattendus en raison des possibilités de nouvelles installations ou de suppressions. Ne pas faire l’amalgame de « dist » avec distribution, la terminologie n’a rien n’a voir. La terminologie « full-upgrade » est maintenant plus adaptée et ne porte pas à confusion.

Le dist-upgrade de apt-get est très mal nommé car il signifie en fait « mettre à jour le plus important, quitte à virer ce qui gêne ».

Il est donc indispensable pour une migration réussie et alors vivement recommandé par debian.

Sinon, dans le cours des mises à jour d'une même stable, il faut lire attentivement ce qui s'écrit avant de valider, quitte à passer d'abord par un upgrade et finir ensuite le travail de mise à jour à la main.

Pour ce qui n'est pas la branche stable, utiliser aptitude est le mieux.

Gestion Avancée EXPERT

Gestion des paquets "recommends"

apt a l'habitude de gérer les paquets marqués recommandés comme des paquets dépendants.

Si cela est intéressant dans certains cas, c'est parfois pénible puisque cela installe des tas de truc que l'on ne souhaite pas vraiment.
Voici la manière de contourner ce petit problème.

Ponctuellement

apt-get install --no-install-recommends NomDuPaquet

Systématiquement

En modifiant : le fichier apt.conf

Forcer l'installation d'un paquet

Pour installer un paquet d'une source présente dans Le fichier preferences mais non prioritaire, utiliser l'option -t <branche>.

Par exemple :

Depuis une installation stable prioritaire forcer un paquet des backports :

apt-get -t stretch-backports install le_nom_du_paquet

Bloquer la mise à jour d'un paquet

Modifier le fichier /etc/apt/preferences (si le fichier n'existe pas, le créer) pour y insérer les lignes suivantes:

Package: nom_du_paquet
Pin: version du paquet à conserver
Pin-priority: 1001

La Priorité du Pin à 1001 bloque les futures mises à jour :-)

Exemple

Si par exemple vous souhaitez conserver la version 0.8.8 de kaffeine, vous indiquerez dans /etc/apt/preferences

Package: kaffeine
Pin: version 0.8.8
Pin-priority: 1001

Dans le doute, vérifier en tapant la commande apt-cache policy nom_du_paquet, pour l'exemple du paquet kaffeine :

apt-cache policy kaffeine

Une méthode plus simple

Toujours avec le paquet kaffeine pris en exemple2) :

echo "kaffeine hold" | dpkg --set-selections

Pour vérifier que le paquet n'a plus le statut install mais hold :

dpkg --get-selections | grep kaffeine

devrait répondre :

 kaffeine                      hold

Pour le débloquer :

echo "kaffeine install" | dpkg --set-selections

Source

Remplacer kaffeine par le paquet que vous voulez modifier. ;-)

Une méthode encore plus simple

apt-mark hold kaffeine

Télécharger un paquet deb sans l'installer

Deux possibilités s'offrent à vous :

apt-get download le_paquet

Dans ce cas le paquet seul sera téléchargé dans votre répertoire courant.

Ou :

apt-get clean

et

apt-get install -d

Ici, le paquet et toutes ses dépendances seront téléchargés dans le répertoire /var/cache/apt/archives/ et vous trouverez le tout au format deb.

Snapshot

Pour installer la version d'un paquet qui n'est plus présente dans les dépôts on utilise une image des dépôts prise à un moment précis : un snapshot.

Installer un paquet source

Il faut vous assurer au préalable que votre fichier source.list soit correctement rempli avec l'adresse des dépôts contenant les paquets sources (classiquement les noms de ces dépôts commencent par deb-src).

Cette commande vous permettra de télécharger les sources d'un paquet debian :

apt-get source le-paquet-source

Par defaut, le paquet est décompressé une fois téléchargé.
Si vous souhaitez le garder en *.tar.gz, passez le paramètre --download-only à la commande ainsi :

apt-get source --download-only le-paquet-source

Si vous voulez compiler directement et automatiquement le paquet après son téléchargement, passez l'option --compile à la commande :

apt-get source --compile le-paquet-source

Assurez vous au préalable d'avoir installé les librairies nécessaires à la compilation du paquet. Pour ce faire, utilisez la commande :

apt-get build-dep le-paquet

Elle aura pour effet d'installer toutes les dépendances nécessaires à la compilation du paquet.

Choisir une image kernel

Pour connaître les noyaux les plus récents disponibles3) en user tapez :

apt-cache search linux-image

Tu copies ton choix dans la liste du (des) noyau(x) qui te convient(viennent). Puis, sous root :

apt-get install linux-image-que-t-a-choisi

hop là LOL Et c'est freddec qui le dit !

Exemple

Pour rechercher une image linux pour une version 2.6.32… tapez dans un terminal user :

apt-cache search linux-image | grep 32
retour de la commande
linux-headers-2.6.32-5-amd64 - Header files for Linux 2.6.32-5-amd64
linux-headers-2.6.32-5-openvz-amd64 - Header files for Linux 2.6.32-5-openvz-amd64
linux-headers-2.6.32-5-vserver-amd64 - Header files for Linux 2.6.32-5-vserver-amd64
linux-headers-2.6.32-5-xen-amd64 - Header files for Linux 2.6.32-5-xen-amd64
linux-image-2.6.32-5-amd64-dbg - Debugging infos for Linux 2.6.32-5-amd64
linux-image-2.6.32-5-amd64 - Linux 2.6.32 for 64-bit PCs
linux-image-2.6.32-5-openvz-amd64-dbg - Debugging infos for Linux 2.6.32-5-openvz-amd64
linux-image-2.6.32-5-openvz-amd64 - Linux 2.6.32 for 64-bit PCs, OpenVZ support
linux-image-2.6.32-5-vserver-amd64-dbg - Debugging infos for Linux 2.6.32-5-vserver-amd64
linux-image-2.6.32-5-vserver-amd64 - Linux 2.6.32 for 64-bit PCs, Linux-VServer support
linux-image-2.6.32-5-xen-amd64-dbg - Debugging infos for Linux 2.6.32-5-xen-amd64
linux-image-2.6.32-5-xen-amd64 - Linux 2.6.32 for 64-bit PCs, Xen dom0 support
nvidia-kernel-2.6.32-5-amd64 - NVIDIA binary kernel module for Linux 2.6.32-5-amd64
nvidia-kernel-2.6.32-5-vserver-amd64 - NVIDIA binary kernel module for Linux 2.6.32-5-vserver-amd64

Ici, j'ai utilisé la commande linux grep pour selectionner la version 32.
Et nous installerons la version :

 linux-image-2.6.32-5-amd64

Merci à bestel74 d'avoir aidé à la création de cet exemple sur le forum df ici :

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
Voir dpkg - grep - pipe