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?


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


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.


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).


3
Parece que isso não é verdade, veja os comentários acima.
Jrdioko
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.