ฉันกำลังติดตั้งโปรแกรมบนเซิร์ฟเวอร์ในฐานะผู้ใช้ที่ไม่ใช่รูท โดยเฉพาะมันคือ tmux 1.5 แต่สิ่งนี้ควรนำไปใช้กับโปรแกรมที่ติดตั้งในเครื่องทั้งหมดในความคิดของฉัน (ฉันพูดถึงชื่อโปรแกรมในกรณีที่ปัญหานี้จบลงไม่ใช่ข้อผิดพลาดของฉันเอง)
โปรแกรมต้องการให้ฉันติดตั้งไลบรารี่บางอัน (เช่น 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 / local / bin แต่ถ้าฉันเรียกใช้โปรแกรมปฏิบัติการ: $ HOME / local / bin / tmux ฉันได้รับข้อผิดพลาดต่อไปนี้:
tmux: ข้อผิดพลาดขณะโหลดไลบรารีที่แบ่งใช้: libevent-2.0.so.5: ไม่สามารถเปิดไฟล์วัตถุที่แชร์ได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันคิดว่าโปรแกรมไม่สามารถค้นหาไลบรารีที่ต้องการได้ แต่ไฟล์ libevent-2.0.so.5 มีอยู่ใน $ HOME / local / lib ตามที่ระบุในตัวเลือกการกำหนดค่า ฉันสงสัยว่าฉันจะทำให้โปรแกรมจดจำไลบรารีที่ติดตั้งเพื่อให้ทำงานได้อย่างไร ฉันพยายามใส่ลิงก์สัญลักษณ์ใน $ HOME / lib, $ HOME / bin และ $ HOME / local / bin แต่ไม่มีอะไรทำงาน ความคิดและข้อเสนอแนะใด ๆ จะได้รับการชื่นชมอย่างมาก
-R $DIR/lib
จะCFLAGS
เป็นในขณะที่อาคารtmux
(และไม่ได้libevent
) สิ่งนี้ไม่ได้ช่วยฉัน - มีข้อผิดพลาดขั้นสุดท้ายจาก gcc ที่บอกว่าไม่สามารถจดจำได้-R
(เช่นกันฉันพยายามโดยไม่มีช่องว่างระหว่าง-R
และ$DIR
) ./configure - ปิดการใช้งานร่วมกันใช้งานได้อัปเดตLD_LIBRARY_PATH
ยังทำงานได้ ฉันสิ้นสุดการสร้างlibevent
อีกครั้งด้วย--disable-shared
ตัวเลือกด้านบน