Jak usunąć wszystkie pakiety i386 z Ubuntu 64bit?


Odpowiedzi:


15

Jeśli nie są na twojej drodze, zostawiłbym ich tam, gdzie są.
Jeśli nalegasz na usunięcie, użyj, dpkg -l | grep i386aby utworzyć listę pakietów i386. Możesz je usunąć po dokładnym sprawdzeniu za pomocą czegoś takiego sudo apt-get purge <package-name>.


2
Tyle tylko, że umiejętność jest zepsuta na wielu lekcjach , więc to nie zadziała tak dobrze: P
tumbleweed

apt-get purge <package-name>powinien jednak nadal działać.
Eliah Kagan,

2
„po starannym sprawdzeniu” - to jest niejasne. Proszę wyjaśnić.
kevinarpe

1
mam system i386 na usb Czasami używam go na maszynach amd64, teraz po prostu chciałem zrobić odwrotnie, więc po uruchomieniu dpkg -l | grep amd64mam i386 pkg na mojej liście, co jest amd64-microcode 3.20160316.3 i386, myślę, że ':' we wzorcu grep jest ważne ! ( dpkg -l | grep ":amd64")
Jonasz

24

Górne zautomatyzowane rozwiązania są niebezpieczne i nie zawsze działają (1), więc tutaj jest inny sposób

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

lub

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

(Staraj się używać zawsze i tylko jednego z narzędzi. Ponieważ aptitude jest lepszy, gdy masz problemy z zależnością, wolę to.)

Dobry pomysł również

dpkg --remove-architecture i386

I może

dpkg --print-foreign-architectures

(1) Poprzednie polecenia wyświetlają również listę pakietów posiadających tylko nazwę i386 (chociaż są one przeznaczone dla architektury 64-bitowej), wyrażenie regularne nie działało, a dpkg pokazuje pakiety, które zostały już usunięte, ale nadal mają pliki konfiguracyjne ( dpkg -l pokazuje „rc” zamiast „ii” jako status).


Ponieważ i tak korzystasz awk, równie dobrze możesz pozbyć się grepwywołania. Ponadto $()jest preferowany zamiast backicks. Właśnie pozbyłem się moich pakietów i386 za pomocą tego polecenia opartego na tym, który podałeś:sudo apt purge $(dpkg --get-selections | awk '$1 ~ /:i386$/ { print $1 }')
scy

23

Zblitzowałem wszystkie moje 32-bitowe pakiety w ten sposób:

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

1
jak wykonać tego rodzaju polecenia, wiem, że apt-get i grep, ale co tam awk „{print $ 1}”, po prostu chcę wiedzieć.
Sukupa91

niesamowite i udało mi się teraz usunąć architekturę i386, ale kiedy dpkg -l | grep i386sprawdzam, czy w paczkach są jeszcze jakieś pomysły, również +1 za poprzedni komentarz i przypuszczam, że jest to związane z technikami skryptów powłoki
Ismail Marmoush

Brak odpowiedzi prawdopodobnie dlatego, że komentarze nie są miejscem na samouczek awk. Ten kawałek awk wypisuje tylko pierwsze pole każdej linii, do której jest przesyłany potok. Domyślnym separatorem pól awk jest spacja, „”.
rthbound

Zakończ tosudo dpkg --remove-architecture i386
Serge Stroobandt

9

Jeśli ktoś się zastanawia, istnieje o wiele bardziej rozsądny i pełen wdzięku sposób. Ostatnia poprzednia odpowiedź ma nadzieję zrobić to samo, ale wyszukiwanie kończy się niepowodzeniem, ponieważ architektury nie są w rzeczywistości częścią nazw pakietów, z wyjątkiem szczególnych przypadków.

jako root (lub z sudo) uruchom:

aptitude remove ~i~ri386

Jeśli nie używasz już aptitude w stosunku do apt-get, zrób to. To jest naprawdę doskonałe. Listę wyszukiwanych terminów aptitude znajdziesz tutaj .


6

Oto inny sposób na jeszcze mniejsze ryzyko:

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

Będzie to w szczególności pasować tylko do pakietów kończących się ":i386", co jest standardową konwencją nazewnictwa dla wszystkich i386pakietów Debiana architektury.


dlaczego usunąć nadmierne czyszczenie?
Lotus,

1
@Lotus: Nie jestem świadomy różnicy. Czy możesz wyjaśnić? Może możemy zaktualizować tę odpowiedź, aby ją poprawić.
kevinarpe

purge pobiera również pliki konfiguracyjne i wszystkie pozostałe katalogi iirc
Lotus

2
@Lotus Użyłem purge i zadziałało 14.04. To działało tylko dla mnie po usunięciu cudzysłowów i carretta. sudo apt-get purge .*:i386
Antonios Hadjigeorgalis,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.