Я не хочу устанавливать какой-либо пакет i386. Есть ли способ отключить функциональность?
dpkg --remove-architecture i386
, чтобы избавиться от мультиархитектуры при установке amd64. В случае, если у вас появится сообщение, например:
dpkg: error: cannot remove architecture 'i386' currently in use by the database
, вы должны удалить все пакеты i386
до:
dpkg -l | grep i386
Поддержка мультиархитектуры включена файлом /etc/dpkg/dpkg. cfg.d/multiarch
Если вы переименуете этот файл и запустите обновление в терминале, вы заметите, что репозитории i386 больше не видны.
Таким образом
sudo mv /etc/dpkg/dpkg.cfg.d/multiarch /etc/dpkg/dpkg.cfg.d/multiarch.backup
Прежде всего удалите все пакеты i386, например:
sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`
Обратите внимание: Skype, Steam, teamviewer и т. Д. Также могут быть удалены.
Затем приступайте к советам fossfreedoms.
На основе как ответа Бена , так и ответа пользователя41220 I сделал следующее:
sudo apt-get remove --purge `dpkg --get-selections | grep i386 | awk '{print $1}'`
Затем
sudo dpkg --remove-architecture i386
, и это сработало для меня.
sudo apt purge .*:i386
При необходимости ( dpkg --print-foreign-architecture
)
sudo dpkg --remove-architecture i386
Для тех, кто хочет отключить поддержку мультиархитектурности с самого начала, вот один лайнер, который можно использовать в (init) скриптах ...
[ ! $(dpkg --get-selections | grep -q i386) ] && dpkg --remove-architecture i386
Это позволит удалить архитектуру i386, как и ожидалось, при первом запуске. При последовательном запуске будет отображаться следующее предупреждение ...
dpkg: warning: невозможно удалить не стороннюю архитектуру 'i386'
Этот однострочный файл может быть полезен на большинстве облачных серверов, где нет пакетов i386 установлены (по умолчанию). Хотя это форум Ubuntu, вот некоторая подробная информация о мультиархитектуре от Debian ... https://wiki.debian.org/Multiarch/HOWTO .
В других ответах рекомендуется dpkg -l
, чтобы получить список пакетов, а затем grep
результат. По моему опыту, dpkg -l
не смог показать некоторые пакеты (с i386 arch), но dpkg --get-selections
показал их, четко пометив их как package_name: i386
. Итак, если мы хотим удалить ранее установленные пакеты i386, а затем удалить их, вот действующая команда, которая работает ...
apt-get remove --purge `dpkg --get-selections | awk '/i386/{print $1}'`