우분투 9.10 서버가 있습니다. 실행 파일을 넣으려고 하는데 최신 flashplayer(디버거 버전)가 나오는군요.
어떻게든 파일이 존재하고 실행 가능한 것처럼 보이지만 파일을 실행하면 콘솔에 파일이 존재하지 않는다고 표시됩니다.
$ pwd
/home/rodrigo/t_fplayer
$ ls -lh
total 12M
-rwxr-xr-x 1 rodrigo rodrigo 12M 2011-07-09 11:35 flashplayerdebugger
$ ./flashplayerdebugger
-bash: ./flashplayerdebugger: No such file or directory
$ ldd flashplayerdebugger
not a dynamic executable
내 로컬 컴퓨터(ssh를 통해 복사)에서 동일한 실행 파일을 사용하면 정상적으로 작동합니다.
무슨 일이 일어났는지 아세요? 이 행동을 무엇으로 설명할 수 있을까요? 이 문제를 해결하는 방법을 아시나요?
답변1
해당 문제는 64비트 <-> 32비트 호환성 문제인 것 같습니다.
~/t_fplayer$ file flashplayerdebugger
flashplayerdebugger: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
해결책은 ia32-libs를 설치하는 것입니다.
답변2
내 생각엔 /home/rodrigo/t_fplayer/flashplayerdebugger의 형식이 올바르지 않은 것 같습니다. 실제로 ldd 출력에도 동일한 내용이 표시됩니다.
실행: file /home/rodrigo/t_fplayer/flashplayerdebugger
파일 명령이 해당 형식에 대해 알고 있는 내용을 확인합니다.
이는 아마도 ASCII로 인코딩된 파일의 압축을 풀고 설치하는 멋진 "쉘 스크립트" 중 하나일 것입니다. 독점 소프트웨어 공급업체는 이런 종류의 어리석음을 좋아합니다.