¿Cómo eliminar todos los paquetes i386 de Ubuntu 64bit?

Respuestas:

15

Si no están en tu camino, los dejaría donde están.
Si insiste en su eliminación, utilizar dpkg -l | grep i386para crear una lista de i386-paquetes. Puede eliminar estos después de la comprobación cuidadosa con algo parecido sudo apt-get purge <package-name>.

Henk
fuente
2
Excepto que la aptitud se rompe en multiarch , por lo que no funcionará tan bien: P
tumbleweed
apt-get purge <package-name>Sin embargo, aún debería funcionar.
Eliah Kagan
2
"después de una cuidadosa verificación", eso es vago. Por favor sea más claro.
kevinarpe
1
tengo un sistema i386 en un usb, a veces lo uso en máquinas amd64, ahora solo quería hacer lo inverso, así que después de ejecutar dpkg -l | grep amd64obtuve un paquete i386 en mi lista que es amd64-microcode 3.20160316.3 i386, creo que el ':' en el patrón grep es importante ! ( dpkg -l | grep ":amd64")
Jonás
24

Las soluciones automatizadas superiores son peligrosas y no siempre funcionan (1), así que aquí hay otra forma

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

o

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

(Intente usar siempre y solo una de las herramientas. Dado que aptitude es mejor cuando tiene problemas de dependencia, prefiero eso).

Buena idea también

dpkg --remove-architecture i386

y tal vez

dpkg --print-foreign-architectures

(1) Los comandos anteriores también enumeran los paquetes que tienen solo i386 en su nombre (aunque son para arquitectura de 64 bits), la expresión regular no funcionó y dpkg muestra los paquetes que ya se eliminaron, pero todavía tienen archivos de configuración ( dpkg -l muestra "rc" en lugar de "ii" como estado).

PythoNic
fuente
Como está utilizando de awktodos modos, también puede deshacerse de la grepinvocación. Además, $()es preferible en lugar de backticks. Acabo de deshacerme de mis paquetes i386 usando este comando basado en el que me diste:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
scy
23

Borré todos mis paquetes de 32 bits como este:

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
Mathnode
fuente
1
cómo hacer este tipo de comandos, sé apt-get y grep pero cuál es awk '{print $ 1}', solo quiero saber.
Sukupa91
impresionante, y pude eliminar la arquitectura i386 ahora, pero cuando lo hago dpkg -l | grep i386para verificar los paquetes todavía hay alguna idea, también +1 para el comentario anterior y supongo que está relacionado con las técnicas de scripting de shell
Ismail Marmoush
Probablemente no haya respuestas porque los comentarios no son el lugar para un tutorial awk. Ese bit de awk está imprimiendo solo el primer campo de cada línea que se está canalizando. El separador de campo predeterminado de Awk es un espacio, "".
rthbound
Termine consudo dpkg --remove-architecture i386
Serge Stroobandt
9

En caso de que alguien se pregunte, hay una forma mucho más sensata y elegante de hacer esto. La última respuesta anterior espera hacer lo mismo, pero esa búsqueda falla ya que las arquitecturas no son realmente parte de los nombres de los paquetes, excepto en casos especiales.

como root (o con sudo) ejecutar:

aptitude remove ~i~ri386

Si ya no usa aptitude sobre apt-get, hágalo. Es realmente excelente Puede encontrar una lista de los términos de búsqueda de aptitude aquí .

Patricio
fuente
6

Aquí hay otra forma que es aún menor riesgo:

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

Esto coincidirá específicamente solo con los paquetes que terminan en ":i386", que es la convención de nomenclatura estándar para todos los i386paquetes Debian de arquitectura.

kevinarpe
fuente
¿Por qué eliminar sobre purga?
Lotus
1
@Lotus: no soy consciente de la diferencia. ¿Puede usted explicar por favor? Tal vez podamos actualizar esta respuesta para mejorarla.
kevinarpe
purge toma los archivos de configuración también y cualquier directorio remanente iirc
Lotus
2
@Lotus Usé purga y funcionó el 14.04. Esto solo funcionó para mí después de eliminar las comillas y el carret. sudo apt-get purge .*:i386
Antonios Hadjigeorgalis
6

La guía multiarch del debian menciona este comando:, apt-get purge ".*:<arch>"que se vería así para i386:

apt-get purge ".*:i386"

Luego puede eliminar la arquitectura de dpkg:

dpkg --remove-architecture i386
Francisco Couzo
fuente