Ceci est une ancienne révision du document !
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
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/ou supprimer /var/lib/apt/* et/ou supprimer /var/cache/apt/*.