====== APT ====== * [[https://doc.ubuntu-fr.org/dpkg#verifier_la_presence_d_un_paquet]] ==== Préciser de quel dépôt installer un paquet ==== ''apt-cache policy '' liste les versions disponibles à l'installation. Globalement, ''apt install -t '' permet de spécifier depuis quel dépôt installer. === Depuis les backports === [[https://debian-facile.org/doc:systeme:apt:sources.list:stretch|Source]] Utile pour installer un paquet depuis les backports: apt -t stretch-backports install libreoffice === Depuis testing === [[https://stackoverflow.com/questions/43151627/installing-g-7-0-1-on-debian-8-7|Source]] Pour installer des paquets de puis ''testing'': deb http://ftp.fr.debian.org/debian/ testing main contrib puis créer le fichier suivant: Package: * Pin: release a=testing Pin-Priority: 100 Ensuite pour installer: sudo apt install -t testing gcc-8 ==== Installer une version spécifique ==== * [[https://wiki.debian.org/RollbackUpdate]] 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 ==== [[https://serverfault.com/questions/252333/list-all-packages-from-a-repository-in-ubuntu-debian|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 ==== [[https://superuser.com/questions/10997/find-what-package-a-file-belongs-to-in-ubuntu-debian|Source]] dpkg -S ==== Trouver le meilleur miroir ==== [[https://www.unixmen.com/find-fastest-mirror-debian-derivatives/|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 ==== [[https://askubuntu.com/questions/128524/how-to-list-dependent-packages-reverse-dependencies|Source]] 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é ([[https://serverfault.com/questions/96964/list-of-files-installed-from-apt-package|source]]) : apt install apt-file apt-file update apt-file list $package Pour un paquet ''.deb'' ([[https://askubuntu.com/questions/32507/how-do-i-get-a-list-of-installed-files-from-a-package|source]]) : dpkg-deb -c paquet.deb ==== Régler le problème d'un manque de place ==== [[https://askubuntu.com/a/317784|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 ==== Afficher le changelog d'un paquet ==== [[https://serverfault.com/questions/174737/how-do-i-see-the-changelog-for-a-debian-ubuntu-deb-package|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 ==== 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, [[https://www.reddit.com/r/debian/comments/amedim/trying_to_remove_ristretto_without_removing/efm3bzn?utm_source=share&utm_medium=web2x&context=3|source]]): sudo apt-mark manual Marquer un paquet comme installé automatiquement: sudo apt-mark auto 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 ([[https://debian-facile.org/doc:systeme:apt:apt-listbugs#alternative-non-recommandeegel-degel-de-paquet|source]]) : apt-mark hold apt-mark unhold # 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. * [[https://wiki.debian.org/AptCacherNg]] 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 [[linux:service#surcharger_un_service|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 ([[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1003865|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/*''.