我正在嘗試將 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
二進位訊息。