22
0
Fork 0
wiki/HowtoDebian/Packages.md

16 KiB

pub rsa4096 ...

/etc/apt/trusted.gpg.d/debian-archive-buster-automatic.gpg

pub rsa4096 ...


Pour des raisons pratiques, nous déconseillons d'ajouter des clés dans le keyring « principal » `/etc/apt/trusted.gpg`.

On préfèrera ajouter des clés dans le répertoire `/etc/apt/trusted.gpg.d/` : soit dans un fichier avec l'extension `.gpg` (clé sous format binaire), soit dans un fichier avec l'extension `.asc` (clé sous format ASCII)

> *Note* : pour les fichiers `.asc` il est important qu'ils aient des sauts de ligne Unix et non DOS… sinon ils seront ignorés. On conseille d'utiliser `dos2unix` pour s'en assurer.

On peut supprimer des clés via la commande `apt-key del` suivi des derniers caractères du fingerprint de la clé :

apt-key del 12345678

OK



## Astuces

### Lister les packages selon leur pool

Lister les packages installés, notamment leur pool pour différencier main/contrib/non-free :

$ dpkg --get-selections | tr '\t' ' ' | cut -d" " -f1 | cut -d: -f1 | xargs apt-cache show | grep ^Filename


### Lister les packages par taille

$ dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n


### Unattended upgrades / Auto upgrades

Sur un serveur non critique (backup, dev, …) on peut vouloir faire les mises à jour automatiquement :

apt install unattended-upgrades

dpkg-reconfigure -plow unattended-upgrades


La configuration se trouve dans le fichier `/etc/apt/apt.conf.d/50unattended-upgrades`.
On peut choisir où envoyer le mail de rapport ou encore si on doit redémarrer la machine automatiquement si nécessaire, etc.

Par exemple, pour mettre à jour Debian 11, on active ceci :

Unattended-Upgrade::Origins-Pattern { "origin=Debian,codename=${distro_codename},label=Debian"; "origin=Debian,codename=${distro_codename},label=Debian-Security"; "origin=Debian,codename=${distro_codename}-security,label=Debian-Security"; };


Il est possible d'automatiser le redémarrage du système (sans demande de confirmation !) en cas de besoin (présence du fichier `/var/run/reboot-required`, généralement provoqué par la disponibilité d'un nouveau noyau) :

Unattended-Upgrade::Automatic-Reboot "true";


### Accepter les changements d'informations de release

Si un dépôt change ses données de "release" (version, nom de code…), APT va demander confirmation explicite. C'est lié à `apt-secure`.

Ça peut par exemple prendre cette forme :

E: Repository 'http://pub.evolix.net bullseye/ Release' changed its 'Codename' value from '' to 'bullseye/' N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details. Do you want to accept these changes and continue updating from this repository? [y/N]


En mode interactif, on peut accepter ou refuser le changement, mais en mode non-interactif (script, Ansible…) ça n'est pas possible.

On peut alors jouer cette commande pour accepter un changement d'information :

apt update --allow-releaseinfo-change


De manière plus ciblée, on peut utiliser cette commande pour accepter un changement de nom de code uniquement :

apt update -o Acquire::AllowReleaseInfoChange::Codename=true


Cette dernière option (`Acquire::AllowReleaseInfoChange::Codename=true`) peut aussi être ajoutée à un fichier de `/etc/apt/apt.conf.d/`.

### Modifier le contenu d'un .deb avec 'ar'

Par exemple pour modifier le fichier `control` d'un paquet `foo.deb`.

On extrait le contenu et on modifie le fichier :

$ ar x foo.deb $ tar xvf control.tar.xz $ vi control


On regénère le `control.tar.xz` avec le control modifié :

$ rm control.tar.xz $ tar cvf control.tar control md5sums


On liste le contenu du `foo.deb` et on remplace son `control.tar.xz` :

$ ar t foo.deb $ ar r foo.deb control.tar.xz $ ar t foo.deb


Et voilà !

Pour info, quelques commandes utiles avec `ar` :

$ ar d foo.deb control.tar.xz // supprimer un fichier $ ar help // liste des commandes


### Installation en mode debug

Passer debconf en mode debug :

DEBCONF_DEBUG=developer export DEBCONF_DEBUG


Utiliser `dpkg -D` par exemple `dpkg -i -D73773` pour un debug maximum.

Voici les options possibles :

$ dpkg -Dh dpkg option de débogage, --debug= or -D:

Nombre Réf. ds source Description 1 general Informations de progression en général utiles 2 scripts Lancement et état des scripts de maintenance 10 eachfile Affichage de chaque fichier traité 100 eachfiledetail Affichage verbeux pour chaque fichier traité 20 conff Affichage pour chaque fichier de configuration 200 conffdetail Affichage verbeux pour chaque fichier de configuration 40 depcon Dépendances et conflits 400 depcondetail Affichage verbeux pour les dépendances et conflits 10000 triggers Activation et traitement des actions différées 20000 triggersdetail Affichage verbeux pour les actions différées 40000 triggersstupid Affichage délirant pour les actions différées 1000 veryverbose Beaucoup de bruit à propos p.ex. du répertoire dpkg/info 2000 stupidlyverbose Bruit délirant (NdT : n'importe quoi)

Les options de débogage peuvent être combinées avec un « or » (bitwise-or). Noter que les valeurs et leur signification peuvent changer.