我正在尝试将 Navicat(一个 x86-64 二进制文件)安装到我的 aarch64 机器上,这会导致“无法执行二进制文件:Exec 格式错误”
file
这是可执行文件的运行结果:
navicatess15-sqlserver-en.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped
这是我的uname -a
:
Linux penguin 4.19.98-08076-g24ab33fb8e14 #1 SMP PREEMPT Wed Apr 1 17:17:36 PDT 2020 aarch64 GNU/Linux
有什么方法可以在我的机器上运行这个可执行文件吗?
(我不知道这是否有什么区别,但我在带有 OP1 处理器的 Samsung Chromebook Plus 上运行 Linux)
答案1
答案2
Debian 有多架构支持这意味着您可以在其他体系结构上安装和运行为一种体系结构构建的程序。
然而,您需要考虑以下因素:
由于 x86 架构与 ARM 有很大不同,因此这将通过仿真(通常通过
qemu-user
)来完成,因此可能会损失一些速度和功能。这需要
binfmt
支持。如果您在 Chromebook 上使用“Linux 容器”(crostinit),则如中所述这个帖子,未启用此支持。在 Chromebook 上,此时
binfmt
需要支持。crouton
有用以及在这方面可以预期的。
如果您想测试此运行以下命令:
A。安装支持该架构所需的二进制文件。
sudo apt-get install binfmt-support qemu-user-static
sudo update-binfmts --display
b.设置 Debian 以支持多架构。
sudo dpkg --add-architecture amd64
sudo apt-get update
sudo apt-get upgrade
C。测试一下。 (假设你不已经已hello
为该aarch64
架构安装了软件包。)
sudo apt-get install hello:amd64
hello
这将打印熟悉的“Hello, World!”使用amd64
二进制消息。