Como desmarcar pacotes de uma determinada arquitetura no aptitude

4

Estou atualizando algumas máquinas Debian do i386 para o amd64. O processo é bastante estreito:

  • Inicialize um kernel amd64
  • Para bibliotecas que são compatíveis com multiarch, instale suas bibliotecas complementares amd64
  • Instale manualmente as versões amd64 do dpkg e do apt
  • Comece a instalar as versões amd64 dos pacotes em suas contrapartes i386

Tudo isso corre de forma bastante tranquila, e eu pude escrever scripts que ajudam, mas depois me deparo com um problema: Quando eu executo o aptitude, ele pensa que eu ainda quero instalar as versões antigas do i386 de tudo ( além das versões amd64). Então, minha tela de aptidão parece algo como:

ii   iptables ...
pi   iptables:i386 ...
ii   iptraf ...
pi   iptraf:i386 ...

Assim, pacotes como o iptables: i386 serão mostrados como "limpos, mas marcados para instalação". Isso leva a várias colisões cem . Até agora, acabei de passar, um por um, e desmarcá-los. Eu não tive muita sorte com minhas tentativas de usar "dpkg --set-selections"

Então, a pergunta oficial é: Alguém sabe de um truque para "un-mark for install" (no aptitude) as versões i386 de cada pacote que já tem uma versão amd64 instalada?

    
por Jemenake 20.02.2014 / 17:01

1 resposta

1

As ações do pacote para o aptitude são armazenadas em /var/lib/aptitude/pkgstates , isso é separado de qualquer dpkg estados. Você pode querer voltar o arquivo acima antes de tentar o seguinte, caso os resultados sejam indesejáveis e seja difícil para você voltar para onde estava. O seguinte deve fazer o que você está procurando (lembre-se de encerrar qualquer instância do aptitude em execução primeiro e também executar como root):

aptitude -F %p search '~ri386 ~ainstall' | cut -d : -f 1 >i386
aptitude -F %p search '~ramd64 ~i | ~ramd64 ~ainstall' | cut -d : -f 1 | sort >amd64
aptitude --schedule-only keep $(comm -13 amd64 i386 | sed 's/$/:i386/')
rm i386 amd64

Quando você reiniciar a GUI, esperamos que você tenha o que procura:)

    
por 20.02.2014 / 18:11