내 aarch64 컴퓨터에 x86-64 바이너리인 Navicat을 설치하려고 하는데 "바이너리 파일을 실행할 수 없습니다: 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
데비안은다중 아키텍처 지원이는 한 아키텍처용으로 구축된 프로그램을 다른 아키텍처에 설치하고 실행할 수 있음을 의미합니다.
하지만, 다음 사항을 고려해야 합니다.
x86 아키텍처는 ARM과 매우 다르기 때문에 이는 에뮬레이션(일반적으로 를 통해)을 통해 수행되므로
qemu-user
속도와 기능이 약간 손실될 수 있습니다.여기에는
binfmt
지원이 필요합니다. Chromebook에서 "Linux 컨테이너"(crostinit)를 사용하는 경우이 게시물, 이 지원은 활성화되지 않습니다.Chromebook에서는 이 시점에서
binfmt
지원이 필요합니다 .crouton
효과가있다그 맥락에서도 기대할 수 있습니다.
이를 테스트하려면 다음을 실행하십시오.
ㅏ. 아키텍처를 지원하는 데 필요한 바이너리를 설치합니다.
sudo apt-get install binfmt-support qemu-user-static
sudo update-binfmts --display
비. 멀티아크를 지원하도록 데비안을 설정하세요.
sudo dpkg --add-architecture amd64
sudo apt-get update
sudo apt-get upgrade
씨. 테스트해 보세요. (그렇지 않다고 가정하면이미hello
아키텍처 에 맞는 패키지가 설치되어 있어야 합니다 aarch64
.)
sudo apt-get install hello:amd64
hello
그러면 친숙한 "Hello, World!"가 인쇄됩니다. 바이너리를 사용한 메시지 amd64
.