Untuk pertanyaan ini saya akan menggunakan contoh spesifik, tetapi ini benar-benar digeneralisasi ke hampir semua biner di linux yang sepertinya tidak dapat menemukan 'pustaka dependennya. Jadi, saya punya program yang tidak akan berjalan karena perpustakaan yang hilang:
./cart5: error while loading shared libraries: libcorona-1.0.2.so: cannot open shared object file: No such file or directory
LDD menyoroti masalah ini:
linux-vdso.so.1 => (0x00007fff18b01000)
libcorona-1.0.2.so => not found
libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/libstdc++.so.6 (0x00007f0975830000)
libm.so.6 => /lib/libm.so.6 (0x00007f09755af000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f0975399000)
libc.so.6 => /lib/libc.so.6 (0x00007f0975040000)
libz.so.1 => /lib/libz.so.1 (0x00007f0974e2b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0975b36000)
Namun, corona diinstal:
oliver@human$ find / -name libcorona-1.0.2.so 2> /dev/null
/usr/local/lib64/libcorona-1.0.2.so
/home/oliver/installed/corona-1.0.2/src/.libs/libcorona-1.0.2.so
Bagaimana cara memberi tahu biner tempat mencari pustaka "hilang"?
Jika Anda ingin menghindari LD_LIBRARY_PATH, Anda juga dapat melakukan ini, saat menautkan:
-Wl, ... digunakan untuk meneruskan perintah tambahan ke tautan, dan dalam kasus ini, dengan -R Anda memberi tahu tautan untuk menyimpan jalur ini sebagai "jalur pencarian default" untuk .so.
Saya menyimpan banyak tips kecil seperti ini di situs saya:
https://www.thanassis.space/tricks.html
sumber
/opt/mypackage/bin/someBinary
akan membutuhkan lib yang Anda simpan/opt/mypackage/lib/
. Hampir semua SW eksklusif yang dipasang di bawah / opt mengikuti aturan ini - yang berarti bahwa cara yang ditunjukkan di atas akan mencakup semua pemasangan semacam itu. Mereka kemudian biasanya akan menambahkan juga symlink di bawah / usr / bin yang menunjuk ke biner di bawah / opt - mengetahui bahwa "jalur pencarian default" akan menemukan.so
s di bawah/opt/.../lib
folder yang sesuai .Ini menunjukkan libcorona tidak diinstal di jalur yang benar. Pindahkan direktori libcorona ke jalur yang benar, masalahnya akan teratasi ..
sumber