Как удалить все пакеты i386 из 64-битной Ubuntu?

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

34
задан 15 August 2012 в 07:11

6 ответов

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

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

или

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

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

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

dpkg --remove-architecture i386

и, возможно,

dpkg --print-foreign-architectures

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

0
ответ дан 15 August 2012 в 07:11

Я скопировал все свои 32-битные пакеты, как это:

sudo apt-get remove `dpkg --get-selections | grep i386 | awk '{print $1}'`
0
ответ дан 15 August 2012 в 07:11

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

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

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

6
ответ дан 15 August 2012 в 07:11

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

от имени пользователя root (или с помощью sudo) выполните:

aptitude remove ~i~ri386

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

0
ответ дан 15 August 2012 в 07:11

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

apt-get purge ".*:i386"

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

dpkg --remove-architecture i386
0
ответ дан 15 August 2012 в 07:11

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

0
ответ дан 15 August 2012 в 07:11

Другие вопросы по тегам:

Похожие вопросы: