4.5 KiB
apt préférences, pinning, hold
emplacement des fichiers:
/etc/apt/preferences
ou /etc/apt/preferences.d/perso
ou /etc/apt/preferences.d/perso.pref
préférences sur branche
- par défaut, un dépôt a une priorité de 500 sauf expérimental (1) ou backports (100)
- un paquet installé à une priorité 100 (release: a=now)
- un dépôt marqué target release (APT::Default-Release "stable";) a une priorité 990, comme celui indiqué temporairement par l'option
-t
- une priorité >1000 permet un retour en arrière (downgrade) comme l'option
--allow-downgrades
- une priorité 100:
NotAutomatic: yes
,ButAutomaticUpgrades: yes
: mise à jour d'un paquet installé dans la branche possible, mais pas de mise à niveau hors branche (un noyau sid ne sera pas utilisé par exemple, sauf si install auparavant). épiglage par défaut de backports, induit par le fichierreleases
du dépôt, mais l'automatisme n'est pas (ou n'a pas toujours été?) fiable, épinglage préférable - une priorité < -1 interdit l'installation automatique (recommends) (depends?), permet l'installation manuelle (apt -t ou paquet/branche). très strict
suivi testing
### stable en fallback, cet épinglage n'est pas fonctionnellement utile
Package: *
Pin: release a=stable,n=stretch
Pin-Priority: 400
### sid TRES STRICT uniquement manuel, pas d'upgrade auto
Package: *
Pin: release a=unstable,n=sid
Pin-Priority: -10
### sid en dépôt annexe, install manuelle, upgrade des paquets installés
Package: *
Pin: release a=unstable,n=sid
Pin-Priority: 100
test simulation
jouer avec des mélanges de dépôts n'est pas anodin, bien tester le comportement de l'épinglage avec: apt policy
et apt policy <paquet>
getInfo -cc
permet de voir facilement l'origine des upgrades à faire
installation d'une "origin" différente
- installer un paquet de sid|unstable
apt -t unstable install <paquet>
# ou
apt -t sid install <paquet>
# ou
apt <paquet>/unstable
préférence sur une version de paquet
- maintenir version 1
Package: <paquet>
Pin: version <version1 paquet>*
Pin-Priority: 1001
- maintenir version 1, équivalent
Package: <paquet>
Pin: release a=now
Pin-Priority: 1001
(release a=now indique les paquets installés)
- éviter une installation version 2
Package: <paquet>
Pin: version <version2>*
Pin-Priority: -10
info backports
sans réglages, le fichier release
de la branche backports induira une priorité de 100, mais comme il y a eu de nombreux incidents à l'époque de jessie en stable, il est péférable de "l'inscrire en dur"
### backports, règles en du du comportement normalement par défaut
Package: *
Pin: release a=stretch-backports
Pin-Priority: 100
hold
hold permet de figer un paquet, sans discernement comme la version par exemple. plus de mise à jour possible sans marquage unhold. fonctionnement différent de pinning, ici pour info:
- figeage (hold) d'un paquet en place
apt-mark hold <paquet>
- libérer un paquet
apt-mark unhold <paquet>
- voir tous les paquets marqués hold
apt-mark showhold
- combiner unhold et maj
apt --ignore-hold upgrade
équivalent de apt-mark unhold *
& apt upgrade
syntaxe préférences APT
Origin -> o= (origin)
Label -> l= (label)
Suite -> a= (archive)
Version -> v= (version)
Components -> c= (components: main contrib non-free)
Codename -> n= (name)
voir codes à appliquer:
dépôts/branches debian
- voir les caractéristiques des dépots:
pager /var/lib/apt/lists/...InRelease|Release
apt policy
Suite (a=) | |
---|---|
now | paquets installés |
Suite (a=) | Codename (n=) | Label (l=) | Origin (o=) |
---|---|---|---|
stable | stretch | Debian | Debian |
stable | stretch | Debian-Security | Debian |
stable-updates | stretch-updates | Debian | Debian |
stretch-backports | stretch-backports | Debian Backports | Debian Backports |
Suite (a=) | Codename (n=) | Label (l=) | Origin (o=) |
---|---|---|---|
testing | buster | Debian | Debian |
testing | buster | Debian-Security | Debian |
testing-updates | buster-updates | Debian | Debian |
Suite (a=) | Codename (n=) | Label (l=) | Origin (o=) |
---|---|---|---|
unstable | sid | Debian | Debian |
- pour toutes les branches, Components:
main
contrib
non-free