Как я могу надежно «держать» пакет в Debian?


14

У меня есть пакет в Debian, который был исправлен вручную (я знаю, что он не идеален), который я должен сохранить в его текущей версии, чтобы обновления не перезаписывали исправленные изменения (я буду вручную проверять и применять обновления безопасности). Насколько я понимаю, есть несколько способов подойти к этому:

  • меткий пиннинг (см. apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • установить это с dselect?

Я читал, что одно удержание не повлияет на другое (например, использование aptitude holdне помешает apt-getили не dselectобновит пакет). Что нужно сделать, чтобы 100% гарантировать, что инструменты Debian никогда не обновят пакет, если я не уберу задержку?


1
Просто комментарий, 9 лет назад кто-то создал ошибку в системе ошибок Debian о том, как действительно можно удерживать пакет, и кажется, что есть (или были) некоторые проблемы с использованием удержания aptitude (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Лучано Фаччинелли

1
Этот кто-то будет мной. :-). Все еще открытая ошибка, хотя люди, которые недавно восстановили способности, сказали, что они посмотрят на это.
Фахим Митха

1
Даниэль Хартвиг ​​писал мне: «Я знал об этой проблеме с трюмами с тех пор, как начал работать над способностями. В настоящий момент я не уделяю этому пристального внимания, поскольку фокусируюсь на работе с несколькими арками. Возраст и значимость пугают меня немного. Есть также вопрос, что aptitude несколько «интерпретирует» состояния dpkg при запуске, чтобы определить, что, если таковые имеются, изменения и как они должны включаться в его модель внутреннего состояния. Будьте уверены, что это не останется один - - Я всегда помнил об этом, когда смотрю на смежные области кода ».
Фахим Митха

1
bugs.debian.org/146207 предположительно исправлен в версии aptitude, загруженной в нестабильную версию.
Фахим Мита

Ответы:


7

aptitudeи dpkgимеют отдельные функции удержания, которые, к сожалению, не будут уважать друг друга. Таким образом, вы должны установить оба, если вы используете оба инструмента:

кв / Dpkg: echo $PACKETNAME hold | dpkg --set-selections

способность: aptitude hold $PACKETNAME


1
Похоже, что сейчас, apt-mark holdсогласно help.ubuntu.com/community/… , есть то же самое, что и dpkg --set-selections.
andyg0808

1

Лучшим подходом в данном конкретном случае (исправленный пакет) может быть установка исправленной версии в /usr/local. Debian этого не трогает.


0

Насколько я знаю, это aptitude hold <package>будет выполняться остальными, если вы явно не прикажете обновить его (например, нажав +, когда курсор находится в поле «обновляемые пакеты» в aptitude).


3
Похоже, это не так, см. Комментарии выше.
Джридиоко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.