- Вопрос или проблема
- Ответ или решение
- Как удалить все пакеты i386 из Ubuntu 64-bit
- Шаг 1: Проверка установленных пакетов i386
- Шаг 2: Удаление пакетов i386
- 2.1 Использование aptitude
- 2.2 Использование apt-get
- Шаг 3: Удаление архитектуры i386
- Шаг 4: Обновление системы
- Шаг 5: Проверка остаточных пакетов
- Заключение
Вопрос или проблема
Со временем я установил много пакетов 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
.
-
Список пакетов:
sudo dpkg –list | grep :i386
-
Удаляйте пакеты :i386 по одному:
sudo dpkg –purge –force-all имя-пакета
-
Как пример:
sudo dpkg –purge –force-all libc6:i386
-
Затем удалите архитектуру:
sudo dpkg –remove-architecture i386
-
Выполните обновление и обновление:
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-разрядных библиотек и программ. Помните, что перед удалением стоит всегда делать резервные копии важных данных и пакетов, чтобы избежать потенциальных проблем в будущем.