Вопрос или проблема
Получаю сообщение об ошибке при выполнении:
sudo apt-get update
Получение:1 http://us.archive.ubuntu.com/ubuntu xenial InRelease [95.8 kB]
Игнорирование:2 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 InRelease
Игнорирование:3 http://dl.google.com/linux/chrome/deb stable InRelease
Получено:4 http://ppa.launchpad.net/canonical-x/vulkan/ubuntu xenial InRelease
Получено:5 http://repo.mongodb.org/apt/debian wheezy/mongodb-org/3.2 Release
Получено:6 http://us.archive.ubuntu.com/ubuntu xenial-security InRelease
Игнорирование:7 http://dl.google.com/linux/talkplugin/deb stable InRelease
Получено:8 http://us.archive.ubuntu.com/ubuntu xenial-updates InRelease
Игнорирование:9 http://linux.dropbox.com/ubuntu wily InRelease
Получено:10 http://ppa.launchpad.net/numix/ppa/ubuntu xenial InRelease
Получение:12 http://dl.google.com/linux/chrome/deb stable Release [782 B]
Получено:13 http://dl.google.com/linux/talkplugin/deb stable Release
Игнорирование:14 https://apt.dockerproject.org/repo ubuntu-wily InRelease
Получено:15 https://apt.dockerproject.org/repo ubuntu-wily Release
Получение:16 http://dl.google.com/linux/chrome/deb stable Release.gpg [181 B]
Получено:17 http://linux.dropbox.com/ubuntu wily Release
Получение:20 http://dl.google.com/linux/chrome/deb stable/main amd64 Packages [1,191 B]
Получено 98.0 kB за 0s (118 kB/s)
Чтение списков пакетов... Готово
N: Пропущено получение сконфигурированного файла 'main/binary-i386/Packages', так как репозиторий 'http://dl.google.com/linux/chrome/deb stable InRelease' не поддерживает архитектуру 'i386'
Это касается различных релизов ubuntu
Также наблюдается аналогичный сбой после включения Ubuntu pro на моем 22.04 … теперь показывает
sudo apt-get update
...
Чтение списков пакетов... Готово
N: Пропущено получение сконфигурированного файла 'main/binary-i386/Packages', так как репозиторий 'https://esm.ubuntu.com/realtime/ubuntu jammy InRelease' не поддерживает архитектуру 'i386'
Я нашел проблемный репозиторий (любой для Google chrome в этом каталоге)
cd /etc/apt/sources.list.d
grep chrome * | grep -v amd64
или более общим образом
grep -r google /etc/apt | grep -v amd64
Теперь выполните то же самое для каждого файла репозитория, который соответствует вышеуказанному
cat /etc/apt/sources.list.d/google-chrome-unstable.list
### Этот файл автоматически настроен ###
# Вы можете закомментировать эту запись, но другие изменения могут быть потеряны.
deb http://dl.google.com/linux/chrome/deb/ stable main
РЕШЕНИЕ: ограничить только 64 бита, добавив [arch=amd64]
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
аналогичное решение для исправления ошибки при обновлении до Ubuntu pro
cat /etc/apt/sources.list.d/ubuntu-realtime-kernel.list
# оригинальный неправильный ... закомментируйте следующую строку
deb https://esm.ubuntu.com/realtime/ubuntu jammy main
# исправлено добавлением [arch=amd64] к вышеуказанной строке
deb [arch=amd64] https://esm.ubuntu.com/realtime/ubuntu jammy main
ПРИМЕЧАНИЕ: Если вы пытаетесь применить это решение для другого пакета, у которого есть .list файл, содержащий строку, подобную этой:
deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main
Решение состоит в том, чтобы добавить флаг архитектуры внутри квадратных скобок, отделив его от других аргументов пробелом. Вот пример:
deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main
КОРЕННАЯ ПРИЧИНА: Google прекратил поддержку 32-битного Chrome на Linux, что вызвало ошибку при обновлении apt в 64-битных системах (с включенной многоархитектурой) … подробности здесь: http://www.omgubuntu.co.uk/2016/03/fix-failed-to-fetch-google-chrome-apt-error-ubuntu
Чтобы подтвердить, что вы используете 64-битную версию ubuntu с включенной многоархитектурой, выполните команду
dpkg --print-foreign-architectures
если вывод будет таким
i386
то вы добавили поддержку 32 бита, это покажет вашу родную архитектуру … выполните команду
dpkg --print-architecture
если вы на родной 64, вы увидите такой вывод, поэтому выполните РЕШЕНИЕ, показанное выше
amd64
выполните ниже, чтобы показать пакеты, использующие 32 бита
dpkg --get-selections | grep 386
Вот команда для удаления мультиархитектуры (только если у вас нет 32-битных приложений)
sudo dpkg --remove-architecture i386
(это решение для Ubuntu Bionic Beaver)
Во-первых, стыдно Google за то, что эта проблема длится так долго!!
Вот как это исправить:
Как уже упоминалось выше, редактирование файлов в /etc/apt/sources.list.d
кажется, работает… но только временно. На следующий день проблема возвращается.
Вот почему:
Файл /etc/cron.daily/google-earth-pro
выполняется ежедневно и перезаписывает то, что у вас в /etc/apt/sources.list.d/google-earth-pro.list
.
Чтобы исправить это раз и навсегда, отредактируйте /etc/cron.daily/google-earth-pro
.
Найдите эту строку:
REPOCONFIG="deb http://dl.google.com/linux/earth/deb/ stable main"
… и измените ее на:
REPOCONFIG="deb [arch=amd64] http://dl.google.com/linux/earth/deb/ stable main"
Обратите внимание, что приведенные выше ответы дают точные решения для формата ONE-LINE-STYLE
.list; однако, подробный DEB822-STYLE FORMAT
должен использовать полный вариант Architectures
вместо сокращенного arch
для ограничения пакетов репозитория до желаемой архитектуры.
Например:
# /etc/apt/sources.list.d/apache-arrow.sources
Типы: deb deb-src
URIs: https://apache.jfrog.io/artifactory/arrow/ubuntu/
Сьюты: focal
Компоненты: main
Подписано-От: /usr/share/keyrings/apache-arrow-apt-source.gpg
Архитектуры: amd64
Подробности по этому параметру и другим можно найти с помощью man sources.list
Изменение
deb http://dl.google.com/linux/chrome/deb/ stable main
на
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
в каждом из
/etc/apt/sources.list.d/google-musicmanager.list
/etc/apt/sources.list.d/google-musicmanager.list.save
/etc/apt/sources.list.d/google-musicmanager.list.distUpgrade
выглядит как исправление проблемы для Google Music Manager для Play Music. Не уверен, вернет ли это изменения в какой-то момент, так как файлы автоматически настраиваются.
Хотя Google исправил эту проблему для Chrome, она все еще возникает, например, для Google Earth.
Добавление [arch=amd64]
исправляет проблему, но его нужно добавлять снова и снова.
После того, как я сделал файл неизменяемым, как предложено в статье webupd8, и столкнулся с проблемами из-за этого, мое текущее решение состоит в том, чтобы добавить cronjob для автоматического применения исправления раз в час:
~$ sudo crontab -e
0 * * * * sed -i 's/^deb http/deb [arch=amd64] http/' /etc/apt/sources.list.d/google-earth.list
(При необходимости замените google-earth.list
).
Хотя этот вопрос был отмечен как решенный, мне не удалось решить проблему с помощью любого из вышеуказанных ответов. Я использовал другой метод. Перейдите в ‘программное обеспечение и обновления’ > ubuntu software > загрузить с > выберите лучший сервер. Теперь подождите некоторое время, пока система не найдет его. После этого попробуйте свою команду снова. Это сработало для меня.
Я добавлю свои 2 цента. Извините, если у меня Debian 10, а не Ubuntu, но мой ответ в теме.
У меня была такая же проблема из-за репозитория mariadb. Он был добавлен в sources.list
как
deb [arch=amd64,i386,ppc64el] http://ftp.nluug.nl/db/mariadb/repo/10.3/debian buster main
Я просто удалил i386
и ppc64el
deb [arch=amd64] http://ftp.nluug.nl/db/mariadb/repo/10.3/debian buster main
Даже если этот вопрос отмечен как решенный, для меня на Ubuntu 18.04 я изменил строку в /etc/apt/sources.list
с deb http://dl.google.com/linux/chrome/deb/ stable main
на deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
.
Файл /etc/apt/sources.list.d/google-chrome-unstable.list
не был найден.
Внесение тех же изменений в /etc/apt/sources.list.d/google-chrome.list
вызвало предупреждения, говорящие о том, что целевой пакет настроен несколько раз. (в sources.list
и google-chrome.list
)
Измените мой список источников
deb https://download.mono-project.com/repo/ubuntu stable-focal main
на
deb [arch=amd64] https://download.mono-project.com/repo/ubuntu stable-focal main
Ответ или решение
Ошибка при обновлении системы: Пропуск получения настроенного файла ‘main/binary-i386/Packages’
Описание проблемы
Вы получили сообщение об ошибке при выполнении команды sudo apt-get update
, заключающееся в следующем:
N: Skipping acquire of configured file 'main/binary-i386/Packages' as repository 'http://dl.google.com/linux/chrome/deb stable InRelease' doesn't support architecture 'i386'.
Это сообщение указывает на то, что ваш установщик пакетов (APT) пытается получить информацию о пакетах для архитектуры i386
(32-бит), но указанный репозиторий (в данном случае Google Chrome) не поддерживает эту архитектуру.
Такая ситуация возникает, когда на системе включена поддержка нескольких архитектур, а некоторые репозитории не предоставляют пакеты для 32-битных систем. Эта проблема наблюдается в разных версиях Ubuntu и может возникнуть, если вы включили поддержку архитектуры i386, но используете только 64-битную версию системы (amd64).
Корень проблемы
Корень проблемы заключается в том, что Google больше не поддерживает 32-битную версию Chrome для Linux. Из-за этого, даже если у вас установлена 64-битная версия Ubuntu, APT все равно запрашивает информацию для архитектуры i386
, что и вызывает данное сообщение об ошибке.
Решение проблемы
Основной шаг для устранения этой ошибки заключается в том, чтобы ограничить репозитории только архитектурой amd64
. Для этого следует отредактировать файлы в каталоге /etc/apt/sources.list.d
, а также основной файл /etc/apt/sources.list
.
Шаги для решения:
-
Проверьте наличие репозиториев:
Используйте команды для поиска всех репозиториев, связанных с Google Chrome, которые могут содержать ошибку:cd /etc/apt/sources.list.d grep chrome * | grep -v amd64
-
Редактируйте файлы репозиториев:
Откройте файл, который вы найдете в предыдущем шаге, и измените строки с репозиториями для Chrome и других программ так, чтобы они содержали флаг[arch=amd64]
. Например, измените следующую строку:deb http://dl.google.com/linux/chrome/deb/ stable main
на:
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
-
Для других пакетов:
Если у вас есть файлы в форматеDEB822
, например, для других репозиториев, используйте полное указание архитектуры:Architectures: amd64
-
Проверьте настройки архитектуры:
Убедитесь, что ваша система действительно работает в 64-битной архитектуре, выполнив следующую команду:dpkg --print-architecture
Если вывод показывает
amd64
, то вы работаете на 64-битной системе. -
Удаление поддержки 32-битной архитектуры (опционально):
Если вы уверены, что не используете 32-битные приложения, вы можете удалить поддержку i386:sudo dpkg --remove-architecture i386
-
Обновите APT:
После внесения исправлений выполните команду:sudo apt-get update
Это позволит APT использовать обновленные настройки и устранить предыдущие ошибки.
Заключение
Проблема, с которой вы столкнулись, связана с отсутствием поддержки 32-битных пакетов в некоторых репозиториях. Редактирование конфигурационных файлов для указания на 64-битную архитектуру решает эту проблему. Следуя описанным выше шагам, вы сможете избежать подобных ошибок в будущем и обеспечить корректное управление пакетами в вашей системе Ubuntu.