Saya memiliki tautan yang dapat dieksekusi seperti ini:
$ ldd a.out
libboost_system-mt.so.1.47.0 => /usr/lib64/libboost_system-mt.so.1.47.0 (0x00007f4881f56000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f4881cfb000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f4881965000)
librt.so.1 => /lib64/librt.so.1 (0x00007f488175d000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4881540000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f4881239000)
.
.
Di mana libcrypto dan libssl libraries adalah openssl 1.0.0-fips libs. Saya ingin bereksperimen dengan pustaka 1.0.1, jadi saya membuatnya di direktori home saya. Apakah ada cara untuk a.out
terhubung kembali dengan perpustakaan openssl baru saya tanpa banyak rasa sakit? Saya ingin menghindarinya
- Harus me-relink
a.out
(karena alat build sangat rumit) - Mengubah pengaturan global (karena pengembang lain mengerjakan mesin ini)
Apakah mungkin melakukan apa yang saya harapkan di sini?
Tulis skrip pembungkus yang menetapkan
LD_LIBRARY_PATH
variabel lingkungan. Ini adalah liontinPATH
untuk perpustakaan bersama. Jalur pencarian sistem selalu dicari setelah direktori yang terdaftar di$LD_LIBRARY_PATH
. Lihat manual tautan dinamis untuk referensi.Atau, untuk sekali saja, langsung di baris perintah:
Sebagai alternatif, jika Anda ingin memodifikasi biner, coba chrpath , yang memungkinkan Anda mengedit jalur pencarian pustaka yang dibuat di executable.
sumber
chrpath
. Apa yang saya butuhkan.