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

14

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

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

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

jrdioko
источник
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

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

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

Даниэль Куллманн
источник
0

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

Shadur
источник
3
Похоже, это не так, см. Комментарии выше.
Джридиоко