Comment puis-je «conserver» un paquet de manière fiable dans Debian?

14

J'ai un paquet dans Debian qui a été corrigé manuellement (pas idéal, je sais) que je dois conserver dans sa version actuelle afin que les mises à niveau n'écrasent pas les modifications corrigées (je vais inspecter et appliquer manuellement les mises à jour de sécurité). Si je comprends bien, il y a plusieurs façons d'aborder cela:

  • apt-pinning (voir apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • le mettre avec dselect?

J'ai lu qu'un blocage n'affectera pas un autre (donc, par exemple, l'utilisation aptitude holdn'empêchera pas apt-getou ne mettra pas dselectà jour le paquet). Que faut-il faire pour garantir à 100% que les outils Debian ne mettront jamais à jour le paquet à moins que je ne retire le blocage?

jrdioko
la source
1
Juste un commentaire, il y a 9 ans, quelqu'un a créé un bogue dans le système de bogues de Debian sur la façon dont peut vraiment contenir un paquet, et il semble qu'il y ait (ou ait eu) des problèmes avec aptitude hold (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli
1
Que quelqu'un serait moi. :-). Encore un bug ouvert, bien que les gens qui ont récemment ravivé l'aptitude aient dit qu'ils allaient y jeter un œil.
Faheem Mitha
1
Daniel Hartwig m'a écrit: "Je suis au courant de ce problème avec les prises depuis que j'ai commencé à travailler sur l'aptitude. Pour le moment, je ne lui ai pas donné un examen approfondi car je me suis concentré sur le fonctionnement multi-arcades. Son âge et sa signification intimident moi un peu. Il y a aussi le fait que l'aptitude "interprète" les états de dpkg au démarrage pour déterminer ce qui, le cas échéant, change et comment ils devraient s'intégrer à son modèle d'état interne. Soyez assuré que celui-ci ne sera pas laissé seul - - Je m'en souviens toujours lorsque je regarde les domaines connexes du code. "
Faheem Mitha
1
bugs.debian.org/146207 est censé être corrigé dans la version d'aptitude téléchargée sur unstable.
Faheem Mitha

Réponses:

7

aptitudeet dpkgont des fonctions de maintien séparées qui ne se respecteront pas, malheureusement. Vous devez donc définir les deux si vous utilisez les deux outils:

apt / dpkg: echo $PACKETNAME hold | dpkg --set-selections

aptitude: aptitude hold $PACKETNAME

scai
la source
1
Il semble qu'il y en ait maintenant apt-mark holdqui, selon help.ubuntu.com/community/… , fait la même chose que dpkg --set-selections.
andyg0808
1

Une meilleure approche dans ce cas particulier (package corrigé) pourrait être d'installer la version corrigée dans /usr/local. Debian n'y touchera pas.

daniel kullmann
la source
0

Pour autant que je sache, aptitude hold <package>sera honoré par les autres à moins que vous ne commandiez explicitement sa mise à niveau (comme en appuyant sur + alors que le curseur est sur le champ "packages évolutifs" dans aptitude).

Shadur
la source
3
On dirait que ce n'est pas vrai, voir les commentaires ci-dessus.
jrdioko