Saya menginstal program di server sebagai pengguna non-root. Khususnya itu tmux 1.5, tetapi ini harus berlaku luas untuk semua program yang diinstal secara lokal menurut saya (saya menyebutkan nama program jika masalah ini akhirnya bukan kesalahan saya sendiri).
Program ini mengharuskan saya untuk menginstal beberapa pustaka dependen (misalnya libevent dan ncurses). Jadi, saya menginstal keduanya secara lokal karena saya tidak memiliki akses root
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
Sekarang, untuk menginstal program, saya juga harus memasukkan paket perpustakaan:
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
Ok, jadi ini menginstal program tanpa masalah ke $ HOME / local / bin, tetapi jika saya menjalankan executable: $ HOME / local / bin / tmux, saya mendapatkan kesalahan berikut:
tmux: kesalahan saat memuat pustaka bersama: libevent-2.0.so.5: tidak dapat membuka file objek bersama: Tidak ada file atau direktori tersebut
Tampaknya bagi saya bahwa program tidak dapat menemukan perpustakaan yang diinginkan, tetapi file libevent-2.0.so.5 memang ada di $ HOME / local / lib seperti yang ditentukan dalam opsi configure. Saya bertanya-tanya bagaimana saya bisa membuat program mengenali pustaka yang diinstal untuk menjalankan. Saya mencoba meletakkan tautan simbolis dalam $ HOME / lib, $ HOME / bin, dan $ HOME / local / bin, tetapi tidak ada yang berhasil. Setiap ide dan saran akan sangat dihargai
-R $DIR/lib
untukCFLAGS
yang sementara membanguntmux
(dan tidaklibevent
). Ini tidak membantu saya - ada beberapa kesalahan terakhir dari gcc yang mengatakan itu tidak dapat dikenali-R
(juga, saya mencoba tanpa spasi di antara-R
dan$DIR
). ./configure --disable-shared Ini berfungsi, memperbarui yangLD_LIBRARY_PATH
juga berfungsi. Saya akhirnya membuatlibevent
lagi dengan--disable-shared
opsi di atas .