我想下载gnome-core
软件包依赖项以安装在 debian 10 arm-64 设备上,所以我使用了以下命令:
sudo apt-cache depends -i gnome-core:arm64 | awk '/Depends:/ {print $2}' | xargs apt-get download
并得到这个错误:
E: Unable to locate package <adwaita-icon-theme:arm64>
E: Unable to locate package <fonts-cantarell:arm64>
E: Unable to locate package <sound-theme-freedesktop:arm64>
E: Unable to locate package <gnome-backgrounds:arm64>
E: Unable to locate package <gnome-session:arm64>
E: Unable to locate package <gnome-shell-extensions:arm64>
E: Unable to locate package <gnome-user-docs:arm64>
E: Unable to locate package <gsettings-desktop-schemas:arm64>
E: Unable to locate package <firefox:arm64>
E: Unable to locate package <chromium-browser:arm64>
E: Unable to locate package <system-config-printer-common:arm64>
之前使用了arm64架构,dpkg --add-architecture arm64
并且存储库都main
启用contrib
了,但是,我这样做了apt update
,apt-get update
然后我重试了,但没有发生任何变化,并得到了相同的错误。
我使用的是 debian 10 buster x86-64 WSL 机器。
问题是什么以及如何下载该依赖项?
答案1
apt-cache
的输出不能以这种方式解析;你最终会得到
...
Depends: <adwaita-icon-theme:arm64>
adwaita-icon-theme
...
并且您正在提取的<adwaita-icon-theme:arm64>
包名称不是有效的。
' 输出中的尖括号apt-cache depends
意味着解析器没有找到要安装的版本,下面的行显示了应该安装的内容 - 对于adwaita-icon-theme
,发生这种情况是因为它被标记为“Multi-Arch:foreign”,这允许本机版本满足依赖性。
除此之外,您没有解析替代依赖项,例如
|Depends: firefox-esr:arm64
|Depends: firefox:arm64
|Depends: chromium:arm64
|Depends: <chromium-browser:arm64>
您只需要安装其中之一,而不是全部。
所有这些使得apt-cache
构建用于外部架构下载的软件包列表变得非常困难。你最好使用外部最小 chroot 并且apt-get install --download-only
:
安装
mmdebstrap
:sudo apt install mmdebstrap qemu-user qemu-user-static binfmt-support libfakeroot:arm64 libfakechroot:arm64
设置默认
arm64
chroot:sudo mmdebstrap --architectures=arm64 buster gnome-core-arm64
输入chroot:
sudo chroot gnome-core-arm64
下载
gnome-core
依赖项:apt-get update apt-get install --download-only gnome-core
退出 chroot,您将在
gnome-core-arm64/var/cache/apt/archives
.