Pertanyaan Tidak Dapat Mengeksekusi Biner di Ubuntu


Aku tidak percaya aku menanyakan ini ... jelas aku dalam kondisi yang langka hari ini.

Mencoba untuk mengatur mesin Ubuntu baru dan hanya mengunduh 'p4' (Perforce command line client). Ini adalah unduhan file tunggal - binary yang terhubung secara statis, jadi saya hanya melakukan:

wget http://www.perforce.com/downloads/perforce/r09.2/bin.linux26x86/p4

... langsung ke / usr / bin. Cukup sederhana. Kecuali:

root@aj-ubuntu:/usr/bin# ll p4 
-rwxr-xr-x 1 root root 748808 2010-02-11 16:54 p4
root@aj-ubuntu:/usr/bin# ./p4 
-su: ./p4: No such file or directory
root@aj-ubuntu:/usr/bin# /usr/bin/p4 
-su: /usr/bin/p4: No such file or directory

Apa yang terjadi di sini ...?!

Terima kasih sebelumnya atas ejekan Anda :)

-aj


4
2018-02-11 22:01


asal


Ubah judul Dude ..: - \ - Bibhas
@Bibhas - cukup adil. - AJ.
Pembaruan: Hanya untuk memastikan, konfirmasikan Anda menjalankan Ubuntu 32-bit. Jika Anda menjalankan sistem 64-bit, Anda mungkin memerlukan paket 'ia32-libs'. tks untuk tip u hanya menyelamatkan saya dari 8 jam rasa sakit di neraka :)


Jawaban:


Ok, saya mendapat file dari URL Anda (yang di bawah 800KB) dan mencoba ini (dari terminal Cygwin yang berguna).

$ file p4
  p4: ELF 32-bit LSB dieksekusi, Intel 80386, versi 1 (SYSV), untuk GNU / Linux 2.2.5, terhubung secara dinamis (menggunakan libs bersama), dilucuti

Tapi, Anda berharap itu terhubung secara statis, Mengapa?


Pembaruan: Hanya untuk memastikan, konfirmasikan Anda menjalankan Ubuntu 32-bit.
Jika Anda menjalankan sistem 64-bit, Anda mungkin memerlukan 'ia32-libspaket.


4
2018-02-12 01:39



@nik - lihat catatan saya ke @gbjbaanb di bawah. Saya mencoba 'ldd' dan semua yang dikatakannya adalah: "bukan eksekusi yang dinamis." Jadi, saya berasumsi itu terhubung secara statis. - AJ.
konfirmasi, itulah yang terjadi file berikan pada sistem saya juga. saya tidak memiliki sistem Linux yang aktif saat ini sehingga saya tidak dapat memeriksa ldd. - quack quixote
@nik - pembaruan Anda memakukannya. Saya menjalankan Ubuntu 64-bit tetapi biner dibangun untuk arsitektur 32-bit. saya menginstal ia32-libs dan yang memperbaikinya, terima kasih. - AJ.


mencoba file ./p4 dan lihat apa yang dikatakannya. Kemungkinan Anda tidak memiliki libraries yang tepat untuk menjalankannya (sehingga tidak dapat memuat biner sama sekali - Anda mendapatkan masalah yang sama dengan Windows jika Anda tidak memiliki dll yang tepat)


1
2018-02-11 22:25



@ gbjbaanb - Saya mencoba 'ldd' dan semua yang dikatakannya adalah: "bukan yang dapat dieksekusi secara dinamis." Saya tidak tahu tentang 'file' meskipun ... Saya akan coba itu. - AJ.


Melakukan ls -lb p4* untuk melihat apakah ada karakter tersesat di nama file.


1
2018-02-11 23:13





Itulah yang terjadi ketika eksekusi Anda tidak valid, mungkin untuk arsitektur lain atau untuk kernel lain. Atau hanya header ELF yang rusak.


1
2018-02-12 04:30





The intepreter readelf -a /usr/bin/p4 | grep interpreter poin ke mungkin hilang. Ini mungkin dikirim dalam beberapa paket compat seperti yang ditunjukkan oleh komentator lain.


1
2018-02-12 11:17



keluaran: [Requesting program interpreter: /lib/ld-linux.so.2] ... - quack quixote


chmod + x / usr / bin / p4


1
2018-02-21 11:43





dieksekusi statis tidak bergantung pada pustaka .... memerlukan kernel yang kompatibel, yaitu yang memiliki sistem panggilan yang sama seperti yang dibangun di atas.

p4 adalah klien yang terpaksa, dan milik Anda dibangun melawan kernel v2.2.5 10 tahun yang lalu ...

itu akan bekerja dengan (lama tidak didukung) nanti 2,2 kernel,

mungkin bekerja dengan (bulan sejak tidak didukung) 2.4 kernel,

itu tidak akan bekerja dengan kernel (yang didukung) 2.6 dan 3.x

Mereka membuat versi untuk 2.6 klien http://www.perforce.com/downloads/complete_list tersedia untuk kebutuhan Anda.


0
2018-04-22 07:35