Wie kann ich ein Paket in Debian zuverlässig "halten"?

14

Ich habe ein Paket in Debian, das manuell gepatcht wurde (nicht ideal, ich weiß), das ich auf der aktuellen Version belassen muss, damit Aktualisierungen die gepatchten Änderungen nicht überschreiben (ich werde die Sicherheitsupdates manuell überprüfen und anwenden). So wie ich es verstehe, gibt es ein paar Möglichkeiten, dies zu erreichen:

  • apt-pinning (siehe apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • einstellen mit dselect?

Ich habe gelesen, dass ein Hold keinen Einfluss auf einen anderen hat (z. B. aptitude holdverhindert apt-getoder verhindert die Verwendung nicht, dass dselectdas Paket aktualisiert wird). Was muss getan werden, um zu 100% sicherzustellen, dass Debians Tools das Paket niemals aktualisieren, es sei denn, ich entferne die Sperrung?

jrdioko
quelle
1
Nur ein Kommentar, vor 9 Jahren jemand erstellt einen Fehler in Debian Bug System darüber , wie kann wirklich halten ein Paket, und scheint , wie es ist (oder war) einige Probleme mit aptitude hold (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli
1
Dieser Jemand wäre ich. :-). Immer noch ein offener Bug, obwohl die Leute, die vor kurzem Aptitude wiederbelebt haben, sagten, sie würden es sich ansehen.
Faheem Mitha
1
Daniel Hartwig schrieb an mich: "Ich war mir dieses Problems mit Holds bewusst, seit ich anfing, an Eignung zu arbeiten. Im Moment habe ich es nicht gründlich untersucht, da ich mich darauf konzentriert habe, Multi-Arch-Arbeiten durchzuführen. Alter und Bedeutung sind einschüchternd Es gibt auch die Sache, dass aptitude dpkg-Zustände beim Start etwas "interpretiert", um zu bestimmen, was sich, wenn überhaupt, ändert und wie sie in das interne Zustandsmodell integriert werden sollen. - Ich denke immer daran, wenn ich verwandte Bereiche des Codes betrachte. "
Faheem Mitha
1
bugs.debian.org/146207 ist angeblich in der Version von aptitude behoben, die auf unstable hochgeladen wurde.
Faheem Mitha

Antworten:

7

aptitudeund dpkggetrennt haben Haltefunktionen , die sich leider nicht respektieren. Sie müssen also beide festlegen, wenn Sie beide Tools verwenden:

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

Eignung: aptitude hold $PACKETNAME

scai
quelle
1
Es scheint, dass es jetzt apt-mark holdwelche gibt, die laut help.ubuntu.com/community/… dasselbe tun wie dpkg --set-selections.
andyg0808
1

Ein besserer Ansatz in diesem speziellen Fall (gepatchtes Paket) könnte darin bestehen, die gepatchte Version in zu installieren /usr/local. Debian wird das nicht anfassen.

Daniel Kullmann
quelle
0

Soweit ich weiß, aptitude hold <package>werden wir von den anderen gewürdigt , es sei denn, Sie bestellen ausdrücklich ein Upgrade (z. B. +, während sich der Cursor in aptitude auf dem Feld "aktualisierbare Pakete" befindet).

Shadur
quelle
3
Sieht so aus, als sei das nicht wahr, siehe die obigen Kommentare.
jrdioko