如何在apt中摆脱arm64


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.

在为Jetson tx1安装Jetpack之后,我的ubuntu不断尝试获取手臂更新。有办法禁用它吗?

编辑:

$dpkg --print-architecture
amd64

$dpkg --print-foreign-architectures
i386
arm64

我看到arm64包含在外国体系结构中。如何将其删除?


1
请加的输出dpkg --print-architecturedpkg --print-foreign-architectures
字节指挥官

我遇到了同样的问题。该链接帮助我删除了arm64软件包。然后使用字节组长给出的解决方案
Raushan Kumar

Answers:


16

您可以通过运行来删除外部架构

sudo dpkg --remove-architecture arm64

之后,您需要更新软件列表。

sudo apt update

如果仍然出现一些错误或警告,则可以尝试删除所有软件列表,然后从服务器上完全重新下载它们,以确保没有任何旧文件。请注意,完整下载将比平时花费更长的时间:

sudo rm -rf /var/lib/apt/lists
sudo apt update

我知道dpkg: error: cannot remove architecture 'arm64' currently in use by the database这很奇怪,因为我不认为我在使用它……
MoneyBall

@MoneyBall可以将输出添加dpkg -l | grep arm64到您的问题吗?似乎安装了一些arm64软件包,您必须先将其删除。
字节指挥官

啊,废话...我有arm64交叉编译器...但是我成功删除了armhf,这很痛苦。谢谢。
MoneyBall

您知道我如何进行apt-get更新以停止获取arm64软件包吗?如何摆脱那些404未找到的错误?
MoneyBall

1
有没有办法从数据库中删除arm64,我遇到了同样的问题。编辑 sudo dpkg --force-architecture --remove-architecture arm64sudo rm -rf /var/lib/apt/listssudo apt update固定它。
weezle1234 '18

7

使用jetson-tx2 arm64时遇到相同的问题。本手册介绍了高级设置方案中的解决方案。事实证明,如果不删除软件包,就无法删除体系结构。

这在添加外部体系结构时很有用,当更新存储库元数据时导致出现“ 404 Not Found”错误。例如,如果您想将存储库限制为仅amd64和i386体系结构,则它看起来像:

deb [arch=amd64,i386] <url>

在“ sudo gedit /etc/apt/sources.list”中为所有存储库提供以上选项。

现在“ sudo apt更新”,它将仅从amd64和i386获取。


这对我来说在18.04.2。谢谢!希望我能投票两次:)。
cxw

1

我遇到了同样的问题,正如字节指挥官提到的那样,如果您不能直接运行

sudo dpkg --remove-architecture arm64

您已经安装了一堆交叉编译的arm64软件包,需要在删除arm64之前运行它。按照列出的顺序运行以下命令:

sudo apt autoremove 
sudo dpkg --remove-architecture arm64
sudo apt-get update 

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卸载程序,它清除了所有这些交叉编译包以及arm64体系结构:

$ ./JetPack_Uninstaller

之后,我又可以apt正常使用了。


位置在哪里JetPack_Uninstaller
csg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.