Jak mogę niezawodnie „zatrzymać” pakiet w Debianie?


15

Mam pakiet w Debianie, który został ręcznie załatany (nie jest to idealne, wiem), który muszę przechowywać w jego bieżącej wersji, aby aktualizacje nie zastępowały poprawionych zmian (ręcznie sprawdzę i zastosuję aktualizacje zabezpieczeń). Jak rozumiem, istnieje kilka sposobów podejścia do tego:

  • apt-pinning (patrz apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • ustawienie z dselect?

Przeczytałem, że jedno wstrzymanie nie wpłynie na inne (więc na przykład użycie aptitude holdnie uniemożliwi apt-getani nie dselectzaktualizuje pakietu). Co należy zrobić, aby w 100% upewnić się, że narzędzia Debiana nigdy nie zaktualizują pakietu, dopóki nie usunę blokady?


1
Tylko komentarz, 9 lat temu ktoś stworzył błąd w systemie błędów Debiana dotyczący tego, jak naprawdę może przechowywać pakiet, i wygląda na to, że istnieją (lub były) problemy z używaniem aptitude hold (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli

1
Że ktoś byłby mną. :-). Nadal jest to otwarty błąd, choć ludzie, którzy niedawno odnowili umiejętności, powiedzieli, że się przyjrzą.
Faheem Mitha

1
Daniel Hartwig napisał do mnie: „Byłem świadomy tego problemu związanego z chwytami, odkąd zacząłem pracować nad umiejętnościami. W tej chwili nie przyjrzałem się mu dokładnie, ponieważ skupiłem się na pracy w wielu architektach. Jego wiek i znaczenie zastraszają jest też kwestia, że ​​aptitude w pewnym stopniu „interpretuje” stany dpkg przy uruchamianiu, aby ustalić, jakie zmiany, jeśli w ogóle, i jak powinny zostać uwzględnione w jego wewnętrznym modelu stanu. Zapewniam, że ten nie zostanie pozostawiony samemu sobie - - Zawsze pamiętam o tym, patrząc na powiązane obszary kodu ”.
Faheem Mitha

1
bugs.debian.org/146207 jest prawdopodobnie poprawiony w wersji aptitude przesłanej do niestabilnej.
Faheem Mitha

Odpowiedzi:


8

aptitudei dpkgmają osobne funkcje wstrzymania, które nie będą się szanować, niestety. Więc musisz ustawić oba, jeśli używasz obu narzędzi:

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

uzdolnienie: aptitude hold $PACKETNAME


3
Wygląda na to, że jest teraz coś , apt-mark holdco według help.ubuntu.com/community/… robi to samo co dpkg --set-selections.
andyg0808

3

Lepszym podejściem w tym konkretnym przypadku (poprawiony pakiet) może być zainstalowanie poprawionej wersji w /usr/local. Debian tego nie dotknie.


0

O ile mi wiadomo, aptitude hold <package>będą honorowani przez innych, chyba że wyraźnie zamówisz aktualizację (np. Wciśnięcie +, gdy kursor znajduje się w polu „pakietów do aktualizacji” w aptitude).


3
Wygląda na to, że to nieprawda, zobacz powyższe komentarze.
jrdioko
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.