मैं एक सर्वर पर एक गैर-रूट उपयोगकर्ता के रूप में एक प्रोग्राम स्थापित कर रहा हूं। विशेष रूप से यह 1.5 tmux है, लेकिन यह मेरे विचार में सभी स्थानीय रूप से स्थापित प्रोग्राम के लिए व्यापक रूप से लागू होना चाहिए (यदि यह समस्या मेरे खुद के त्रुटि नहीं होने की स्थिति में प्रोग्राम के नाम का उल्लेख करता हूं)।
कार्यक्रम के लिए मुझे कुछ आश्रित पुस्तकालयों (जैसे libevent और ncurses) को स्थापित करने की आवश्यकता होती है। इसलिए, मैंने उन दोनों को स्थानीय रूप से स्थापित किया क्योंकि मेरे पास रूट एक्सेस नहीं है
cd $HOME/library/installation/folder
DIR=$HOME/local
./configure --prefix=$DIR
#... make ... make install
अब, प्रोग्राम को स्थापित करने के लिए, मुझे लाइब्रेरी पैकेज को भी शामिल करना पड़ा:
cd $HOME/program/installation/folder
./configure --prefix=$DIR CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"
#... make ... make install
ठीक है, इसलिए यह बिना किसी समस्या के $ HOME / लोकल / बिन में प्रोग्राम इंस्टॉल करता है, लेकिन अगर मैं निष्पादन योग्य चलाता हूं: $ HOME / लोकल / बिन / tmux, तो मुझे निम्न त्रुटि मिलती है:
tmux: साझा पुस्तकालयों को लोड करते समय त्रुटि: libevent-2.0.so.5: साझा की गई ऑब्जेक्ट फ़ाइल नहीं खोल सकते: ऐसी कोई फ़ाइल या निर्देशिका नहीं
यह मुझे प्रतीत होता है कि कार्यक्रम वांछित पुस्तकालयों को नहीं ढूंढ सकता है, लेकिन फ़ाइल libevent-2.0.so.5 वास्तव में $ HOME / स्थानीय / lib में मौजूद है जैसा कि कॉन्फ़िगर विकल्पों में निर्दिष्ट है। मैं सोच रहा हूं कि कैसे मैं प्रोग्राम को चलाने के लिए स्थापित लाइब्रेरी को पहचान सकता हूं। मैंने $ HOME / lib, $ HOME / bin और $ HOME / local / bin में प्रतीकात्मक लिंक डालने की कोशिश की, लेकिन इनमें से किसी ने भी काम नहीं किया। किसी भी विचार और सुझाव बहुत सराहना की जाएगी
-R $DIR/lib
हैCFLAGS
कि निर्माण के दौरानtmux
(और नहींlibevent
)। इसने मेरी मदद नहीं की - यह कहकर कि इसे पहचाना नहीं जा सकता-R
(यह भी, बीच बीच में बिना कोशिश किए )-R
और वहाँ से कुछ अंतिम त्रुटि आई$DIR
। ./configure --disable- शेयर्ड यह काम किया, यहLD_LIBRARY_PATH
भी अद्यतन काम किया। मैंनेlibevent
उपरोक्त--disable-shared
विकल्प के साथ फिर से बनाना शुरू किया ।