Kemungkinan Duplikat:
Tidak dapat menjalankan beberapa binari di lingkungan chroot (zsh:Tidak ditemukan)
Hari ini saya mengalami sesuatu yang membuat saya bingung. Seorang rekan kerja sedang bekerja dengan biner pra-kompilasi tertentu yang dia unduh (tersedia di sini). Di Server Ubuntu 10.04 LTS yang dia kerjakan, mencoba mengeksekusi file ini menghasilkan file-not-found, bahkan dengan izin yang disetel dengan benar.
Namun, ketika saya mencoba hal yang sama dari OpenSUSE 11.4, itu berjalan dengan baik. Menjalankan file
di atasnya memberi saya:
ELF 32-bit LSB yang dapat dieksekusi, Intel 80386, versi 1 (SYSV), tertaut secara dinamis (menggunakan lib bersama), untuk GNU/Linux 2.6.15, dihapus
Kedua kotak Ubuntu dan OpenSUSE adalah instalasi 64-bit, dan file
mengembalikan informasi yang sama pada kedua mesin.
Yang terlihat baik-baik saja bagi saya. Dan pada kotak opensuse, LDD bahkan memberi saya daftar pendek file perpustakaan. Pemeriksaan tangan, semua file yang ditentukan itu juga ada di server Ubuntu. Keluaran strace berbeda:
Opensuse:
execve(“./trid”, [“./trid”], [/* 122 vars */]) =0
Ubuntu (memberikan path lengkap tidak mengubah hasil):
execve(“./trid”, [“./trid”], [/* 19 vars */]) =-1 ENOENT (Tidak ada file atau direktori seperti itu)
Apa yang menyebabkan file seperti ini tidak dapat dieksekusi dengan cara ini?
Jawaban yang Diterima:
Ketik
ldd ./trid
baik pada sistem openSuse dan Ubuntu.
Saya menduga Anda akan menemukan bahwa file perpustakaan yang terakhir tidak ada.