Tôi có một ứng dụng 32 bit (được gọi là uclsyn) tôi nhận được từ một giáo sư thiên văn học. Tôi đã quản lý để nó chạy trên CentOS một năm trước, nhưng bây giờ khi tôi thiết lập một máy ảo CentOS mới, nó sẽ không chạy và tôi không thể hiểu tại sao. Nó tiếp tục trở lại với "Bị giết".
Đây là trao đổi trên dòng lệnh:
$ ./uclsyn_linux
Killed
$ ldd ./uclsyn_linux
not a dynamic executable
$ file ./uclsyn_linux
uclsyn_linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
Trên máy không chạy, "ldd ./uclsyn_linux" trả về toàn bộ danh sách các phụ thuộc. Tôi đã tìm thấy các gói cung cấp các thư viện dùng chung này và tất cả chúng dường như được cài đặt.
Gói yêu cầu
- libSM-1.1.0-7.1.el6.i686
- libX11-1.3-2.el6.i686
- libgcc-4.4.6-3.el6.i386
- glibc-2.12-1.47.el6_2.9.i686
- libuuid-2.17.2-12.4.el6.i686
- libXau-1.0.5-1.el6.i686
- Ngoài ra còn có một đống thư viện cục bộ cho ứng dụng mà tôi đã kiểm tra và đã được cài đặt.
Môi trường của tôi
CentOS chạy dưới VirtualBox
uname -a
: Linux localhost.localdomain 2.6.32-358.el6.i686 # 1 SMP Thu 21 tháng 2 12:50:49 UTC 2013 i686 i686 i386 GNU / Linux
strace ./uclsyn
đầu ra làm gì? Điều đó có thể cho chúng ta một gợi ý về những gì còn thiếu đầu tiên.
strace
một chương trình không được liên kết chính xác.