Risposte:
Se non fossero sulla tua strada, li lascerei dove sono.
Se insisti sulla cancellazione, usa dpkg -l | grep i386
per creare un elenco di pacchetti i386. Puoi eliminarli dopo un attento controllo con qualcosa di simile sudo apt-get purge <package-name>
.
apt-get purge <package-name>
dovrebbe comunque funzionare, comunque.
dpkg -l | grep amd64
ho un p38 i386 nella mia lista che è amd64-microcode 3.20160316.3 i386
, penso che il ':' nel modello grep è importante ! ( dpkg -l | grep ":amd64"
)
Le soluzioni automatizzate superiori sono pericolose e non sempre funzionano (1), quindi qui un altro modo
sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
o
sudo apt-get purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
(Cerca di usare sempre e solo uno degli strumenti. Poiché l'attitudine è migliore quando si hanno problemi di dipendenza, preferisco quello.)
Buona idea anche a
dpkg --remove-architecture i386
e forse
dpkg --print-foreign-architectures
(1) I primi comandi elencano anche i pacchetti che hanno solo i386 nel loro nome (anche se sono per l'architettura a 64 bit), l'espressione regolare non ha funzionato e dpkg mostra i pacchetti che sono già stati rimossi, ma che hanno ancora dei file di configurazione ( dpkg -l mostra "rc" invece di "ii" come stato).
awk
comunque, puoi anche sbarazzarti grep
dell'invocazione. Inoltre, $()
è preferibile invece di backtick. Mi sono appena sbarazzato dei miei pacchetti i386 usando questo comando basato su quello che hai dato:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
Ho blitzato tutti i miei pacchetti a 32 bit in questo modo:
sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
dpkg -l | grep i386
per controllare i pacchetti ci sono ancora idee, anche +1 per il commento precedente e suppongo sia legato alle tecniche di scripting della shell
sudo dpkg --remove-architecture i386
Nel caso qualcuno si stia chiedendo, c'è un modo molto più sano e grazioso per farlo. L'ultima risposta precedente spera di fare la stessa cosa, ma quella ricerca fallisce poiché le architetture in realtà non fanno parte dei nomi dei pacchetti, tranne in casi speciali.
come root (o con sudo) eseguire:
aptitude remove ~i~ri386
Se non usi già aptitude su apt-get, fallo. È davvero eccellente Puoi trovare un elenco dei termini di ricerca di aptitude qui .
Ecco un altro modo che è anche a rischio inferiore:
apt-get remove "^.*:i386$"
Questo corrisponderà specificamente solo ai pacchetti che terminano con ":i386"
, che è la convenzione di denominazione standard per tutti i386
i pacchetti Debian di architettura.
sudo apt-get purge .*:i386
La guida multiarch del debian menziona questo comando :,apt-get purge ".*:<arch>"
che sarebbe simile a questo per i386
:
apt-get purge ".*:i386"
È quindi possibile rimuovere l'architettura da dpkg:
dpkg --remove-architecture i386