저는 최근에 ARMv8 서버에서 x86_64 바이너리를 실행하기 위해 동적 바이너리 변환기를 설치했습니다. DBT 도구를 제거한 후 매우 혼란스러운 몇 가지 이상한 오류 메시지를 발견했습니다.
약간의 배경 정보, DBT 도구를 사용하여 bash(x86_64용으로 컴파일됨)를 입력하고 x86_64 시스템에서와 마찬가지로 테스트를 실행할 수 있습니다.
테스트를 완료하고 프로그램을 제거하기로 결정한 후에 문제가 발생했습니다.
때때로 ARM 서버에서(rpm 패키지를 사용하기 전에 DBT를 설치했습니다) x86_64 정적으로 링크된 바이너리를 실행하면 helloworld
출력 메시지는 다음과 같습니다.
-bash: ./helloworld: No such file or directory
file
하지만 내가 사용할 때 ls
바이너리가 있습니다.
file ./helloworld
./helloworld: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=465941947d84d055552ea628720b94096516c3a7, with debug_info, not stripped
그러나 이전에 DBT 도구가 설치되지 않은 다른 ARM 서버에서 동일한 바이너리를 실행하려면. 출력 메시지는 다음과 같습니다
-bash: ./helloworld: cannot execute binary file: Exec format error
이 오류 메시지는 바이너리 파일 불일치 문제를 명확하게 지적하기 때문에 제가 받고 싶은 메시지입니다.
내가 신경쓰는 건
DBT 도구를 완전히 제거하지 않았을 수도 있지만 rpm 패키지에서 추가한 파일을 두 번 확인한 후에도 남은 파일을 찾을 수 없습니다.
나는 다음과 같은 게시물을 읽었습니다.https://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists, 다른 사람. 그들도 같은 문제를 갖고 있는 것 같지만, 그 정보는 나에게 아무 소용이 없습니다.
어떤 도움이라도 대단히 감사하겠습니다.