Как удалить все пакеты i386 с Ubuntu 64bit?

28

За время, когда я установил множество пакетов i386, которые мне больше не нужны. Как я могу очистить систему и оставаться только с пакетами amd64?

    
задан yossile 15.03.2012 в 19:39
источник

6 ответов

14

Если они не на вашем пути, я оставлю их там, где они есть.
Если вы настаиваете на удалении, используйте dpkg -l | grep i386 , чтобы создать список i386-пакетов. Вы можете удалить их после тщательной проверки с чем-то вроде sudo apt-get purge <package-name> .

    
ответ дан Henk 15.03.2012 в 19:51
источник
21

Я включил все свои 32-битные пакеты следующим образом:

sudo apt-get remove 'dpkg --get-selections | grep i386 | awk '{print }''
    
ответ дан Mathnode 15.06.2012 в 11:51
21

Верхние автоматизированные решения опасны и не всегда работают (1), поэтому другой путь

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

или

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

(Старайтесь использовать всегда и только один из инструментов. Поскольку aptitude лучше, когда у меня есть проблемы с зависимостью, я предпочитаю это.)

Хорошая идея также

dpkg --remove-architecture i386

и, возможно,

dpkg --print-foreign-architectures

(1) В предыдущих командах также перечислены пакеты, имеющие только имя i386 (хотя они предназначены для архитектуры с 64-разрядной архитектурой), регулярное выражение не работает, а dpkg показывает пакеты, которые уже удалены, но все еще имеют файлы конфигурации слева ( dpkg -l показывает «rc» вместо «ii» как статус).

    
ответ дан PythoNic 17.02.2014 в 22:30
9

В случае, если кто-то задается вопросом, есть гораздо более разумный и изящный способ сделать это. Последний предыдущий ответ надеется сделать то же самое, но этот поиск не выполняется, поскольку архитектуры не являются фактически частью имен пакетов, за исключением особых случаев.

как root (или с помощью sudo):

aptitude remove ~i~ri386

Если вы не используете aptitude над apt-get уже, сделайте. Это действительно отлично. Вы можете найти список поисковых терминов aptitude здесь .

    
ответ дан Patrick 18.04.2015 в 14:44
6

Вот еще один способ, который представляет еще более низкий риск:

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

Это будет соответствовать только пакетам, заканчивающимся на ":i386" , что является стандартным соглашением о присвоении имен для всех пакетов архитектуры Debian i386 .

    
ответ дан kevinarpe 09.02.2014 в 12:09
3

В руководстве multiarch debian упоминается эта команда: apt-get purge ".*:<arch>" , которая будет выглядеть так: i386 :

apt-get purge ".*:i386"

Затем вы можете удалить архитектуру из dpkg:

dpkg --remove-architecture i386
    
ответ дан Francisco Couzo 17.01.2017 в 20:44