как избавиться от arm64 в apt

13
W: Invalid 'Date' entry in Release file /var/lib/apt/lists/_var_cuda-repo-8-0-local_Release
N: Skipping acquire of configured file 'non-free/binary-arm64/Packages' as repository 'http://repository.spotify.com stable InRelease' doesn't support architecture 'arm64'
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/main/binary-arm64/Packages  404  Not Found [IP: 91.189.88.161 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/binary-arm64/Packages  404  Not Found [IP: 91.189.88.161 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-backports/main/binary-arm64/Packages  404  Not Found [IP: 91.189.88.161 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-security/main/binary-arm64/Packages  404  Not Found [IP: 91.189.88.161 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.

После того, как я установил Jetpack для Jetson tx1, моя Ubuntu постоянно пытается получить обновления для рук. Есть ли способ отключить это?

РЕДАКТИРОВАТЬ:

$dpkg --print-architecture
amd64

$dpkg --print-foreign-architectures
i386
arm64

Я вижу, что arm64 включен в зарубежные архитектуры. Как мне это убрать?

Moneyball
источник
1
Пожалуйста, добавьте вывод dpkg --print-architectureи dpkg --print-foreign-architectures.
Byte Commander
Я столкнулся с той же проблемой. эта ссылка помогла мне удалить мои пакеты arm64. а затем использовал решение, данное байтовым командиром
Раушан Кумар

Ответы:

16

Вы можете удалить чужую архитектуру, запустив

sudo dpkg --remove-architecture arm64

После этого вам необходимо обновить списки программного обеспечения.

sudo apt update

Если вы по-прежнему получаете сообщения об ошибках или предупреждения, вы можете попробовать удалить все списки программного обеспечения и полностью повторно загрузить их с сервера, чтобы убедиться, что ничего старого не осталось. Обратите внимание, что полная загрузка займет немного больше времени, чем обычно:

sudo rm -rf /var/lib/apt/lists
sudo apt update
Byte Commander
источник
Я получаю, dpkg: error: cannot remove architecture 'arm64' currently in use by the databaseчто странно, потому что я не думаю, что использую это ...
MoneyBall
@MoneyBall Можете ли вы добавить вывод dpkg -l | grep arm64на ваш вопрос? Похоже, установлены некоторые пакеты arm64, которые вы должны будете удалить в первую очередь.
Byte Commander
Ах, дерьмо ... У меня есть кросс-компилятор arm64 ... но я успешно удалил armhf, что было больно. Спасибо.
MoneyBall
Вы знаете, как я могу сделать обновление apt-get, чтобы прекратить получать пакеты arm64? Как мне избавиться от этих 404 не найденных ошибок?
MoneyBall
1
Есть ли способ удалить arm64 из базы данных, у меня такие же проблемы. EDIT sudo dpkg --force-architecture --remove-architecture arm64 и sudo rm -rf /var/lib/apt/listsс sudo apt updateфиксированным его.
weezle1234
7

Столкнулся с той же проблемой при работе с jetson-tx2 arm64. Это руководство описывает решение в расширенном сценарии установки. Оказывается, вы не можете удалить архитектуру без удаления пакетов.

Это полезно, когда была добавлена ​​сторонняя архитектура, что приводит к появлению ошибок «404 Not Found» при обновлении метаданных репозитория. Например, если вы хотите ограничить хранилище только архитектурами amd64 и i386, это будет выглядеть так:

deb [arch=amd64,i386] <url>

Предоставьте вышеуказанную опцию для всех репозиториев в "sudo gedit /etc/apt/sources.list"

Теперь "sudo apt update", и он будет загружаться только с amd64 и i386.

Двиджей Бэйн
источник
Это сработало для меня 18.04.2. Спасибо! Хотелось бы, чтобы я проголосовал дважды :).
cxw
1

У меня была такая же проблема и, как упоминал Byte Commander, если вы не можете запустить напрямую

sudo dpkg --remove-architecture arm64

У вас установлено несколько пакетов для кросс-компиляции arm64, и вам нужно запустить их перед удалением arm64. Выполните следующие команды в указанном порядке:

sudo apt autoremove 
sudo dpkg --remove-architecture arm64
sudo apt-get update 
Hesham
источник
0

То же самое случилось со мной. Я не смог apt updateили не смог apt upgrade, потому что обновления пакета arm64 завершились с ошибкой 404.

dpkg дал мне вывод:

$ dpkg --print-foreign-architectures
i386
arm64

Просмотр моих установленных пакетов arm64 показал, что Jetpack установил некоторые кросс-компиляции:

$ dpkg -l | grep arm64
ii  cuda-cudart-cross-aarch64-9-0:arm64  9.0.252-1           arm64   CUDA Runtime cross-aarch64 dev links, headers
ii  libc6-arm64-cross                    2.23-0ubuntu3cross1 all     GNU C Library: Shared libraries (for cross-compiling)
ii  linux-libc-dev-arm64-cross           4.4.0-18.34cross1   all     Linux Kernel Headers for development (for cross-compiling)
...

Мое решение:

Я только что запустил Jetpack Uninstaller, который очистил все эти кросс-компиляционные пакеты, а также архитектуру arm64:

$ ./JetPack_Uninstaller

После этого я снова смог aptправильно пользоваться.

Sparkofska
источник
Где JetPack_Uninstallerнаходится?
CSG