x86-64 バイナリである Navicat を aarch64 マシンにインストールしようとしていますが、「バイナリ ファイルを実行できません: 実行形式エラー」という結果になります。
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
。