dpkg: błąd: nie można usunąć architektury „i386” aktualnie używanej przez bazę danych

12

Użyłem tego polecenia, aby dodać arch i386:

sudo dpkg --add-architecture i386

A potem natychmiast po zainstalowaniu żadnych pakietów próbowałem usunąć łuk i386 w następujący sposób:

sudo dpkg --remove-architecture i386

I dostałem błąd:

dpkg: error: cannot remove architecture 'i386' currently in use by the database

Rozwiązania, które widziałem do tej pory, polegają na usuwaniu pakietów i386, nie zainstalowałem żadnego, te zainstalowane są niezbędne dla funkcjonowania systemu operacyjnego. Co ja robię?

EDYTUJ, PROSZĘ PRZECZYTAĆ PONIŻSZE, ABY UNIKNĄĆ ZNISZCZENIA SWOJEGO OS:

Okazuje się, że 64-bitowe systemy Linux zawierają już arch i386, więc komenda sudo dpkg --add-architecture i386tak naprawdę nic nie zrobiła.

daka
źródło

Odpowiedzi:

8

W przypadku instalacji amd64 (komputer 64-bitowy) architektura i386 (komputer 32-bitowy) jest domyślnie aktywna. Z twojej listy wygląda na to, że właśnie masz 32-bitowe pakiety użyte dla Wine. Wine potrzebuje kilku 32-bitowych bibliotek do uruchamiania 32-bitowych aplikacji Windows. Nie będziesz w stanie usunąć architektury i386, dopóki nie odinstalujesz 32-bitowego Wine. Ale nie ma sensu tego robić: włączenie architektury i386 nie jest niczym złym.

Gilles „SO- przestań być zły”
źródło
26

Biegać

dpkg --get-selections | awk '/i386/{print $1}'

A następnie, jeśli jesteś zadowolony z ich usunięcia, biegnij

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

A następnie spróbuj ponownie

dpkg --remove-architecture i386
Steve
źródło
2
Dziękuję za to, bardzo przydatne! Czy wiesz, czy można to bezpiecznie zrobić w systemie Ubuntu 16.04 64-bit? Pytam, ponieważ widzę długą listę pakietów i martwię się, że coś może pójść nie tak, jeśli
usunę
2
@sunyata, jeśli Twoim celem jest usunięcie i386 z systemu, to tak: usuń wszystkie pakiety i386, a następnie usuń architekturę.
Braiam
To mi pomogło. Po usunięciu i386 udało mi się zaktualizować Firefoksa. Dziękuję Ci.
makkasi,