Como posso "segurar" um pacote de forma confiável no Debian?

14

Eu tenho um pacote no Debian que foi corrigido manualmente (não é o ideal, eu sei) que devo manter em sua versão atual para que as atualizações não substituam as alterações corrigidas (vou inspecionar e aplicar manualmente as atualizações de segurança). Pelo que entendi, existem algumas maneiras de abordar isso:

  • apt-pinning (consulte apt_preferences(5))
  • aptitude hold
  • dpkg --set-selections
  • configurá-lo com dselect?

Eu li que uma retenção não afetará outra (por exemplo, o uso aptitude holdnão impedirá apt-getou dselectatualizará o pacote). O que precisa ser feito para 100% garantir que as ferramentas da Debian nunca atualizem o pacote, a menos que eu remova a retenção?

jrdioko
fonte
1
Apenas um comentário, há 9 anos alguém criou um bug no sistema de erros do Debian sobre como realmente pode conter um pacote e parece que há (ou houve) alguns problemas ao usar o aptitude hold (LINK: bugs.debian.org/cgi-bin/ bugreport.cgi? bug = 146207 )
Luciano Facchinelli
1
Que alguém seria eu. :-). Ainda é um bug aberto, embora as pessoas que recentemente reviveram a aptidão disseram que dariam uma olhada nela.
Faheem Mitha
1
Daniel Hartwig escreveu para mim: "Estou ciente desse problema com retenções desde que comecei a trabalhar no aptitude. No momento, eu não dei uma olhada completa, pois meu foco estava em fazer o trabalho com vários arcos. A idade e o significado intimidam. Há também o problema de que o aptitude "interpreta" os estados do dpkg na inicialização para determinar o que, se houver, muda e como eles devem ser incorporados ao seu modelo de estado interno. Certifique-se de que este não será deixado sozinho - - Estou sempre atento a isso ao analisar áreas relacionadas do código ".
Faheem Mitha
1
O bugs.debian.org/146207 está supostamente corrigido na versão do aptitude carregada em instável.
Faheem Mitha

Respostas:

7

aptitudee dpkgpossuem funções de espera separadas que infelizmente não se respeitam. Então você deve definir os dois se usar as duas ferramentas:

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

aptidão: aptitude hold $PACKETNAME

scai
fonte
1
Parece que agora existe o apt-mark holdque, de acordo com help.ubuntu.com/community/… , faz o mesmo que dpkg --set-selections.
andyg0808
1

Uma abordagem melhor nesse caso específico (pacote corrigido) poderia ser instalar a versão corrigida no /usr/local. O Debian não vai tocar nisso.

daniel kullmann
fonte
0

Até onde eu sei, aptitude hold <package>será honrado pelos outros, a menos que você o solicite explicitamente como upgrade (como pressionar + enquanto o cursor estiver no campo "pacotes atualizáveis" no aptitude).

Shadur
fonte
3
Parece que isso não é verdade, veja os comentários acima.
Jrdioko