Table des matières

APT

Préciser de quel dépôt installer un paquet

apt-cache policy <paquet> liste les versions disponibles à l'installation.

Globalement, apt install -t <depot> <paquet> permet de spécifier depuis quel dépôt installer.

Depuis les backports

Source

Utile pour installer un paquet depuis les backports:

apt -t stretch-backports install libreoffice

Depuis testing

Source

Pour installer des paquets de puis testing:

/etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ testing main contrib

puis créer le fichier suivant:

/etc/apt/preferences.d/testingpref
Package: *
Pin: release a=testing
Pin-Priority: 100

Ensuite pour installer:

sudo apt install -t testing gcc-8

Installer une version spécifique

Pour downgrader un paquet buggué, par exemple.

La version doit apparaître dans apt-cache policy (ajouter le dépôt nécessaire ou utiliser http://snapshot.debian.org/), puis :

apt install paquet=version

Lister les paquets proposés par un dépôt

Source

grep ^Package: /var/lib/apt/lists/repo | cut -d ' ' -f 2 | uniq 

Dry run

Demander à APT de dire ce qu'il va faire, sans le faire: utiliser l'option --dry-run.

Connaître depuis quel paquet provient un fichier

Source

dpkg -S <file>

Trouver le meilleur miroir

Source

Installer le paquet netselect-apt.

Lancer la commande:

sudo netselect-apt -n -c fr

Connaître les dépendances d'un paquet et les dépendances inverses

Source

apt-cache rdepends --installed packagename # paquets installés qui dépendent de packagename
apt-cache depends packagename # dépendances de packagename

L'outil debtree permet de visualiser en Graphviz tout le graphe de dépendances d'un paquet binaire.

Connaître tous les fichiers installés par un paquet

Lorsque le paquet est installé :

dpkg -L $package

Pour un paquet pas installé (source) :

apt install apt-file
apt-file update
apt-file list $package

Pour un paquet .deb (source) :

dpkg-deb -c paquet.deb

Régler le problème d'un manque de place

Source

Lors de la mise à jour des paquets linux-image-*, une erreur indiquant un manque de place peut apparaître. Cela vient le plus souvent de la partition de boot qui commence à être saturée des différentes versions du noyau Linux.

Trouver les versions des paquets installées:

dpkg -l linux-headers-\* linux-image-\* | grep ^ii 

Supprimer la plus ancienne version de linux-headers-*:

sudo dpkg --remove linux-headers-4.9.0-11-amd64 linux-headers-4.9.0-11-common

Relancer l'installation:

sudo apt --fix-broken install

Afficher le fichier source d'un paquet

apt-cache showsrc <package>

Afficher le changelog d'un paquet

Source

apt changelog firefox-esr # fonctionne aussi sur les paquets non-installés
zless /usr/share/doc/firefox-esr/changelog.Debian.gz

Clés de signature

On peut lister les clés connues par APT avec :

apt-key list

Installer les dépendances pour compiler un paquet

apt build-dep <package>

Marquer un paquet

Comme installé manuellement (permet de ne pas passer en autoremove des paquets installés comme dépendances d'un paquet qu'on souhaite désinstaller, source):

sudo apt-mark manual <paquet>

Marquer un paquet comme installé automatiquement:

sudo apt-mark auto <paquet>

Lister les paquets marqués comme installés manuellement:

apt-mark showmanual

Il est possible de marquer qu'il ne faut pas mettre à jour un paquet (source) :

apt-mark hold <paquet>
apt-mark unhold <paquet> # démarquer
apt-mark showhold # voir les paquets marqués "hold"

Le marquage des paquets est stocké dans le fichier /var/lib/dpkg/status.

Lister toutes les versions d'un paquet dans toutes les suites

Avec rmadison du paquet devscripts.

Apt-cacher-ng

Système de caches pour les paquets, utile pour économiser de la bande-passante si plusieurs machines du même réseau ou du même hôte (chroots, VMs, etc) vont souvent télécharger les mêmes paquets.

Installer le paquet apt-cacher-ng.

Changer le dossier où seront stockés les paquets en cache et les logs dans le fichier /etc/apt-cacher-ng/acng.conf, en modifiant les clés CacheDir et LogDir. Il faut aussi modifier le paramètre RequireMountsFor en surchargeant le fichier /lib/systemd/system/apt-cacher-ng.service. Les dossiers utilisés par apt-cacher-ng doivent appartenir à son utilisateur. Relancer le programme pour prendre en compte la configuration :

sudo systemctl daemon-reload
sudo service apt-cacher-ng restart

Créer le fichier /etc/apt/apt.conf:

Acquire::http::Proxy::bugs.debian.org "DIRECT";
Acquire::http::Proxy "http://127.0.0.1:3142";

La première ligne est nécessaire pour que apt-listbugs fonctionne correctement.

Si des dépôts accédés en HTTPS posent problème, il faut les ajouter à l'expression régulière de la clé PassThroughPattern du fichier /etc/apt-cacher-ng/acng.conf.

Une page de statistiques et d'entretien est disponible à l'adresse http://localhost:3142/acng-report.html

En cas de problème de signatures des dépôts, supprimer les dépôts qui posent problème, par exemple (source) :

rm -rf /var/cache/apt-cacher-ng/debrep/dists/bookworm

Sinon, sur la machine cliente, désactiver le proxy (?) et supprimer /var/lib/apt/* et /var/cache/apt/*.