Root kullanıcısı olmayan bir sunucuya bir program yüklüyorum. Özellikle tmux 1.5, ama bu bence yerel olarak yüklü tüm program için geniş ölçüde geçerli olmalıdır (bu sorunun kendi hatam olmaması durumunda program adını belirtiyorum).
Program bazı bağımlı kütüphaneler (örn. Libevent ve ncurses) yüklememi gerektiriyor. Bu yüzden, kök erişimim olmadığından ikisini de yerel olarak yükledim
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
Şimdi, programı yüklemek için, kütüphane paketlerini de eklemek zorunda kaldım:
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
Tamam, bu yüzden programı $ HOME / local / bin içine sorunsuz yükler, ancak yürütülebilir dosyayı çalıştırırsam: $ HOME / local / bin / tmux, aşağıdaki hatayı alıyorum:
tmux: paylaşılan kitaplıkları yüklerken hata: libevent-2.0.so.5: paylaşılan nesne dosyasını açamıyor: Böyle bir dosya veya dizin yok
Bana öyle geliyor ki program istenen kütüphaneleri bulamıyor, ancak libevent-2.0.so.5 dosyası aslında yapılandırma seçeneklerinde belirtildiği gibi $ HOME / local / lib dosyasında mevcut. Çalıştırmak için programın kurulu kütüphaneyi tanımasını nasıl sağlayabilirim diye merak ediyorum. $ HOME / lib, $ HOME / bin ve $ HOME / local / bin'e sembolik bağlantılar koymayı denedim, ancak bunların hiçbiri işe yaramadı. Herhangi bir fikir ve önerilen büyük mutluluk duyacağız
-R $DIR/lib
içinCFLAGS
inşa ederken olduğutmux
(velibevent
). Bu bana yardımcı olmadı - gcc'den tanıyamayacağını söyleyen son bir hata vardı-R
(ayrıca,-R
ve arasındaki boşluk olmadan denedim$DIR
). ./configure --disable-shared Bu çalıştı, güncellemeLD_LIBRARY_PATH
de çalıştı.libevent
Yukarıdaki--disable-shared
seçenek ile tekrar yapma sona erdi .