지난 하루 동안 실행하려고 하면 "bin-name: 해당 파일 또는 디렉터리가 없습니다"라고 표시되는 바이너리를 4개 이상 발견했습니다. 이름의 일부를 입력하고 Tab을 사용하여 완성해도 동일한 오류가 발생합니다. 저는 x86_64 아키텍처를 사용하고 있습니다.
출력 file
:
fez-09152013-bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.24,
BuildID[sha1]=0x78612e4aac547367548dcc7cc3067c3cfcf2f177, stripped
출력 strace
:
execve("./fez-09152013-bin", ["./fez-09152013-bin"], [/* 23 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3fda17a000
lseek(3, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x7f3fda17a000, 4096) = 0
exit_group(1) = ?
출력 ldd
:
Not a dynamic executable
출력 내용이 strings
너무 길어서 들여쓰기할 수 없으므로 다음 링크를 참조하세요.http://pastebin.com/t7MmugLY
적절한 오류 발생:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ia32-libs : Depends: ia32-libs-i386 but it is not installable
E: Unable to correct problems, you have held broken packages.
답변1
대부분의 경우 64비트 시스템(Multi-lib 시스템 아님)만 있고 동적 로더가 32비트 바이너리를 실행 파일로 인식하지 못할 가능성이 높습니다. 32비트 버전의 glibc(동적 링커/로더 포함 - 출력의 첫 번째 줄에서 어떤 버전인지 확인할 수 있음 strings binary
)와 바이너리가 링크하는 기타 라이브러리 또는 관련 바이너리를 설치해야 합니다. 64비트 버전으로. 또한보십시오64비트 시스템에서 32비트 바이너리를 실행할 때 "찾을 수 없음" 메시지 수신더 많은 정보를 알고 싶습니다.