如何在 arm64 上安装 amd64 libc6 库?

如何在 arm64 上安装 amd64 libc6 库?

我有一个供应商提供的 deb 包,已针对 amd64 进行了编译。我目前正在运行 ARM 版 Ubuntu 服务器。

当我最初跑步时,dpkg由于架构不匹配,我被大声呵斥。

因此我首先安装了 QEMU:

apt install qemu binfmt-support qemu-user-static
sudo dpkg --add-architecture amd64

我可以毫无问题地安装该软件包,但是在运行二进制文件时,我收到以下消息:

x86_64-binfmt-P: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory

看起来我们正在尝试从我没有的 libc6 动态链接到 amd64 库。

需要什么巫术才能获得它?

答案1

嗯,既然主持人这么好……

尝试dpkg-deb -f <package>.deb Depends查看依赖关系,或者您可以按照下面的链接操作。非常简洁。

另一个选项是按照你正在做的事情,但反过来这里

答案2

我想你想要:

sudo dpkg --add-architecture amd64
cat > /etc/apt/sources.list.d/amd64.list <<EOF
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
EOF
sudo apt update
sudo apt install libc6:amd64

或者,如果您只需要 ld 而不需要其他依赖项,则可以跳过 multiarch 并尝试安装libc6-amd64-cross包含以下内容的包:

/usr/x86_64-linux-gnu/lib64/ld-linux-x86-64.so.2

qemu-x86_64自动使用它:

sudo mkdir /etc/qemu-binfmt/
sudo ln -nsf /usr/x86_64-linux-gnu /etc/qemu-binfmt/x86_64

相关内容