Вопрос или проблема
Я использую 64-битную Kali Linux, ранее была установлена архитектура i386, и теперь я хочу удалить ее, потому что каждый раз при выполнении apt update
она загружает около 30Mb данных для 32-битного пакета.
Я попробовал dpkg --remove-architecture i386
, это не сработало с ошибкой:
dpkg: ошибка: невозможно удалить архитектуру ‘i386’, которая в настоящее время используется базой данных
Google говорит, что сначала нужно удалить пакеты i386, но некоторые пакеты, такие как “gcc-12-base:i386, libc6:i386, libcrypt1:i386, libgcc-s1:i386”, не могут быть удалены. Как это решить?
Вам нужно удалить их одновременно и принудительно, несмотря на их «защищенный» статус:
dpkg --purge --force-remove-protected {gcc-12-base,libc6,libcrypt1,libgcc-s1}:i386
$ sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
.
Ответ или решение
Устранение архитектуры i386 в Kali Linux: Подробное руководство
Если вы используете 64-битную версию Kali Linux и столкнулись с проблемой удаления архитектуры i386, вероятно, это связано с тем, что некоторые пакеты по-прежнему зависят от 32-битной версии. Как результат, команда dpkg --remove-architecture i386
не работает, и вы получаете сообщение об ошибке. В данном руководстве мы подробно рассмотрим шаги, которые необходимо предпринять для корректного удаления архитектуры i386 и устранения зависимостей.
Шаг 1: Выясните, какие пакеты зависят от архитектуры i386
Для начала вам нужно определить, какие именно 32-битные пакеты установлены на вашей системе. Это можно сделать с помощью следующей команды:
dpkg --get-selections | grep ":i386"
Эта команда выведет на экран список всех установленных пакетов, относящихся к архитектуре i386.
Шаг 2: Удалите зависимости
Поскольку простое удаление пакетов может оказаться невозможным из-за их защищённого статуса, вам нужно использовать принудительное удаление. Обратите внимание, что это может привести к нестабильности системы, поэтому рекомендуется сделать резервную копию важных данных.
Для удаления этих пакетов, выполните следующую команду:
sudo dpkg --purge --force-remove-protected {gcc-12-base,libc6,libcrypt1,libgcc-s1}:i386
Здесь мы принуждаем систему удалить основные защитные пакеты, которые используются для работы библиотек и компиляторов.
Шаг 3: Удалите все оставшиеся 32-битные пакеты
После удаления основных зависимостей вы сможете удалить все остальные 32-битные пакеты одновременно. Это можно сделать с помощью следующей команды:
sudo aptitude purge `dpkg --get-selections | grep ":i386" | awk '{print $1}'`
Команда aptitude
– это более продвинутая альтернатива apt
, которая может управлять зависимостями более эффективно. Она позволит вам удалять пакеты, не вводя их названия вручную.
Шаг 4: Удаление архитектуры i386
После того как все необходимые пакеты будут удалены, вы сможете успешно выполнить команду для удаления архитектуры:
sudo dpkg --remove-architecture i386
Эта команда завершит процесс удаления поддержки 32-битных приложений в вашей 64-битной системе.
Заключение
Устранение архитектуры i386 может быть вызвано множеством причин, включая необходимость экономии дискового пространства и сокращение времени обновления пакетов. Используя указанные выше команды, вы сможете эффективно удалить ненужные 32-битные пакеты и завершить процесс удаления архитектуры. Не забудьте регулярно проверять вашу систему на наличие ненужных пакетов и следить за установленными архитектурами для поддержания стабильности системы.
Если у вас возникли дополнительные вопросы или затруднения, вы всегда можете обратиться за помощью к сообществу Kali Linux или соответствующий ресурсам в интернете.