내 aarch64 컴퓨터에 Navicat(x86-64 바이너리)를 설치하려고 하는데 "바이너리를 실행할 수 없습니다: 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
b. 여러 아키텍처를 지원하도록 데비안을 설정합니다.
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
메시지가 인쇄됩니다.