После добавления новой иностранной архитектуры в Ubuntu 21.04 я больше не смог получить никаких обновлений, используя ни автоматическое обновление ПО niether, ни apt update
.
Единственное решение, которое я нашел, это удалить добавленную чужую архитектуру (в данном случае armhf) с помощью команды sudo dpkg --remove-architecture armhf
.
Сразу после удаления я получил накопленные обновления с момента добавления чужой архитектуры до момента ее удаления (без перезагрузки системы).
Я хотел бы узнать причину этой проблемы. (Это была ошибка? кто-нибудь еще сталкивался с этим?)
Спасибо за ваше время и усилия, чтобы ответить на мой вопрос заранее.
Edit 1:
Результат dpkg --print-foreign-architectures
был:
i386 armhf
Результат dpkg --print-architecture
был:
amd64
Проблема была на ноутбуке ASUS N551JW.
Два момента об архитектуре процессора armhf - ему нужна виртуализация, его пакеты находятся на другом зеркальном сервере.
Поэтому при выполнении следующих команд на свежей amd64 системе:
sudo dpkg --add-architecture armhf
вы получите следующие ошибки при следующем запуске sudo apt-get update
:
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/hirsute/multiverse/binary-armhf/Packages 404 Not Found [IP: 192.168.3.222 8000]. E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/hirsute-updates/main/binary-armhf/Packages 404 Not Found [IP: 192.168.3.222 8000] E: Failed to fetch http://security.ubuntu.com/ubuntu/dists/hirsute-security/universe/binary-armhf/Packages 404 Not Found [IP: 192.168.3.222 8000] E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/hirsute-backports/universe/binary-armhf/Packages 404 Not Found [IP: 192.168.3.222 8000] E: Не удалось загрузить некоторые индексные файлы. Они были проигнорированы, или вместо них были использованы старые.
поэтому APT будет серьезно нарушен.
Поэтому вы должны удалить armhf чужеродную архитектуру из системы с помощью sudo dpkg --remove-architecture armhf
, а затем снова запустить sudo apt-get update
, чтобы все было в порядке.
Насколько я понимаю, для amd64 существует только одна правильная зарубежная архитектура - это 32-битный вариант под названием i386. Многие пакеты используют его, например Wine.