Come rimuovere tutti i pacchetti i386 da Ubuntu 64 bit?


Risposte:


15

Se non fossero sulla tua strada, li lascerei dove sono.
Se insisti sulla cancellazione, usa dpkg -l | grep i386per creare un elenco di pacchetti i386. Puoi eliminarli dopo un attento controllo con qualcosa di simile sudo apt-get purge <package-name>.


2
Tranne che l'attitudine è rotta su multiarch , quindi non funzionerà così bene: P
tumbleweed

apt-get purge <package-name>dovrebbe comunque funzionare, comunque.
Eliah Kagan,

2
"dopo un attento controllo" - è vago. Per favore, sii più chiaro.
Kevinevpe,

1
ho un sistema i386 su un usb a volte lo uso su macchine amd64, ora volevo solo fare il contrario, quindi dopo l'esecuzione dpkg -l | grep amd64ho un p38 i386 nella mia lista che è amd64-microcode 3.20160316.3 i386, penso che il ':' nel modello grep è importante ! ( dpkg -l | grep ":amd64")
Giona

24

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


Dato che stai usando awkcomunque, puoi anche sbarazzarti grepdell'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 }')
scy

23

Ho blitzato tutti i miei pacchetti a 32 bit in questo modo:

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

1
come fare questo tipo di comandi, conosco apt-get e grep ma che cosa è awk '{print $ 1}', voglio solo saperlo.
Sukupa91,

fantastico, e sono stato in grado di rimuovere l'architettura i386 ora, ma quando faccio dpkg -l | grep i386per controllare i pacchetti ci sono ancora idee, anche +1 per il commento precedente e suppongo sia legato alle tecniche di scripting della shell
Ismail Marmoush,

Probabilmente nessuna risposta perché i commenti non sono il posto giusto per un tutorial awk. Quel po 'di awk sta stampando solo il primo campo di ogni linea che viene reindirizzata. Il separatore di campi predefinito di Awk è uno spazio "".
uscita il

Termina consudo dpkg --remove-architecture i386
Serge Stroobandt l'

9

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 .


6

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 i386i pacchetti Debian di architettura.


perché rimuovere l'epurazione?
Lotus,

1
@Loto: non sono consapevole della differenza. Puoi spiegare per favore? Forse possiamo aggiornare questa risposta per migliorarla.
kevinarpe,

purge prende anche i file di configurazione e tutte le directory rimanenti iirc
Lotus

2
@Loto ho usato l'eliminazione e ha funzionato il 14.04. Questo ha funzionato solo per me dopo aver rimosso le virgolette e il carret. sudo apt-get purge .*:i386
Antonios Hadjigeorgalis,

6

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.