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

Вопрос или проблема

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

Другие автоматизированные решения опасны и не всегда работают (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 показывает “rc” вместо “ii” как статус).

Я удалил все свои 32-битные пакеты так:

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

Если они не мешают, я бы оставил их там, где они есть.

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

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

sudo apt-get purge ".*:i386"

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

sudo dpkg --remove-architecture i386

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

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

aptitude remove ~i~ri386

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

Есть еще один способ с меньшим риском:

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

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

  1. Список пакетов:

    sudo dpkg –list | grep :i386

  2. Удаляйте пакеты :i386 по одному:

    sudo dpkg –purge –force-all имя-пакета

  3. Как пример:

    sudo dpkg –purge –force-all libc6:i386

  4. Затем удалите архитектуру:

    sudo dpkg –remove-architecture i386

  5. Выполните обновление и обновление:

    sudo apt update && sudo apt upgrade -y

Это сработало для меня.

Ответ или решение

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

С введением поддержки многоархитектурности (multiarch) в Linux, пользователи могут устанавливать 32-разрядные (i386) пакеты на 64-разрядные (amd64) системы. Тем не менее, со временем может возникнуть необходимость в очистке системы от ненужных 32-разрядных пакетов. В этом руководстве мы рассмотрим несколько безопасных и эффективных способов удаления пакетов i386 из вашей системы Ubuntu.

Шаг 1: Проверка установленных пакетов i386

Перед тем, как приступить к удалению, рекомендуется составить список всех установленных 32-разрядных пакетов. Для этого выполните следующую команду:

sudo dpkg --list | grep :i386

Эта команда выведет список всех i386 пакетов, установленных в системе. Вы можете пересмотреть этот список для определения, какие из них вам действительно нужно удалить.

Шаг 2: Удаление пакетов i386

Существует несколько подходов для удаления i386 пакетов:

2.1 Использование aptitude

aptitude — это мощный инструмент для управления пакетами в Debian/Ubuntu. Для удаления всех i386 пакетов используйте следующую команду:

sudo aptitude remove ~i~ri386

Эта команда удалит все 32-разрядные пакеты, оставляя пользовательские настройки и зависимости.

2.2 Использование apt-get

Другой способ — воспользоваться apt-get. Эта команда удалит все i386 пакеты:

sudo apt-get purge '.*:i386'

Или используйте:

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

Важно отметить, что использование символов ` (обратные кавычки) в командной строке позволяет динамически подставлять список пакетов.

Шаг 3: Удаление архитектуры i386

После удаления всех ненужных пакетов рекомендуется удалить саму архитектуру i386 из вашей системы:

sudo dpkg --remove-architecture i386

Эта команда уберёт поддержку 32-разрядных пакетов из системы.

Шаг 4: Обновление системы

Не забудьте обновить вашу систему после всех изменений:

sudo apt update && sudo apt upgrade -y

Шаг 5: Проверка остаточных пакетов

После выполнения всех операций, вы можете еще раз проверить наличие каких-либо остатков 32-разрядных пакетов, используя команду:

sudo dpkg --list | grep :i386

Если команда возвращает пустой результат, значит, все 32-разрядные пакеты успешно удалены.

Заключение

Удаление всех пакетов i386 из Ubuntu 64-бит может значительно освободить место и упростить управление системой. Используя указанные методы, вы сможете эффективно очистить вашу систему от ненужных 32-разрядных библиотек и программ. Помните, что перед удалением стоит всегда делать резервные копии важных данных и пакетов, чтобы избежать потенциальных проблем в будущем.

Оцените материал
Добавить комментарий

Капча загружается...