Como remover todos os pacotes i386 do Ubuntu 64bit?


Respostas:


15

Se eles não estiverem no seu caminho, eu os deixaria onde estão.
Se você insistir em excluir, use dpkg -l | grep i386para criar uma lista de pacotes i386. Você pode excluí-los após uma verificação cuidadosa com algo parecido sudo apt-get purge <package-name>.


2
Exceto que a aptidão é quebrado em multiarch , de modo que não vai funcionar tão bem: P
amaranto

apt-get purge <package-name>ainda deve funcionar, no entanto.
Elias Kagan

2
"após verificação cuidadosa" - isso é vago. Por favor, seja mais claro.
Kevinarpe

11
Eu tenho um sistema i386 em um usb, às vezes eu o uso em máquinas amd64, agora eu só queria fazer o inverso, então, depois de executar, dpkg -l | grep amd64recebi um pacote i386 na minha lista, ou seja amd64-microcode 3.20160316.3 i386, acho que o ':' no padrão grep é importante ! ( dpkg -l | grep ":amd64")
Jonas

24

As soluções automatizadas superiores são perigosas e nem sempre estão funcionando (1), então aqui outra maneira

sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

ou

sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`

(Tente usar sempre e apenas uma das ferramentas. Como o aptitude é melhor quando há problemas de dependência, eu prefiro isso.)

Boa ideia também

dpkg --remove-architecture i386

e talvez

dpkg --print-foreign-architectures

(1) Os comandos anteriores também listam pacotes com apenas i386 em seu nome (embora sejam para arquitetura de 64 bits), a expressão regular não funcionou e o dpkg mostra pacotes que já foram removidos, mas ainda têm arquivos de configuração ( dpkg -l mostra "rc" em vez de "ii" como status).


Como você está usando de awkqualquer maneira, você também pode se livrar da grepinvocação. Além disso, $()é preferível em vez de backticks. Acabei de me livrar dos meus pacotes i386 usando este comando com base no comando que você deu:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
scy

23

Eu blitzed todos os meus pacotes de 32 bits como este:

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`

11
como fazer esse tipo de comando, eu sei apt-get e grep, mas o que é awk '{print $ 1}', só quero saber.
Sukupa91

incrível, e eu consegui remover a arquitetura i386 agora, mas quando eu faço dpkg -l | grep i386para verificar se os pacotes ainda existem alguma idéia, também +1 para o comentário anterior e meu palpite está relacionado às técnicas de script de shell
Ismail Marmoush

Provavelmente, não há respostas porque os comentários não são o lugar para um tutorial do awk. Esse pedaço de awk está imprimindo apenas o primeiro campo de cada linha sendo inserida. O separador de campos padrão do Awk é um espaço "" ".
precisa saber é

Terminar comsudo dpkg --remove-architecture i386
Serge Stroobandt 11/04

9

Caso alguém esteja se perguntando, há uma maneira muito mais sã e graciosa de fazer isso. A última resposta anterior espera fazer o mesmo, mas essa pesquisa falha porque as arquiteturas não fazem parte dos nomes dos pacotes, exceto em casos especiais.

como root (ou com sudo) execute:

aptitude remove ~i~ri386

Se você ainda não usa o aptitude sobre o apt-get, faça. É realmente excelente. Você pode encontrar uma lista dos termos de pesquisa do aptitude aqui .


6

Aqui está outra maneira que apresenta um risco ainda menor:

apt-get remove "^.*:i386$"

Isso corresponderá especificamente apenas aos pacotes que terminam com ":i386", que é a convenção de nomenclatura padrão para todos os i386pacotes Debian de arquitetura.


por que remover a purga em excesso?
Lotus

11
@Lotus: Não conheço a diferença. Você pode explicar, por favor? Talvez possamos atualizar esta resposta para melhorá-la.
Kevinarpe

purga leva os arquivos de configuração também e todos os diretórios Remant IIRC
Lotus

2
@Lotus eu usei purga e funcionou em 14.04. Isso só funcionou para mim depois de remover as aspas e o código. sudo apt-get purge .*:i386
Antonios Hadjigeorgalis

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.