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
Utile pour installer un paquet depuis les backports:
apt -t stretch-backports install libreoffice
Depuis testing
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
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
dpkg -S <file>
Trouver le meilleur miroir
Connaître les dépendances d'un paquet et les dépendances inverses
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
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
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/*.