ฉันต้องการส่งออกLD_LIBRARY_PATH
ไปยังบริการระบบและผู้ใช้ทั้งหมด บริการของระบบจะทำงานก่อนเข้าสู่ระบบดังนั้นจึง.bashrc
ไม่สามารถใช้งานได้
ทำอย่างไรจึงจะได้สิ่งนี้?
ฉันต้องการส่งออกLD_LIBRARY_PATH
ไปยังบริการระบบและผู้ใช้ทั้งหมด บริการของระบบจะทำงานก่อนเข้าสู่ระบบดังนั้นจึง.bashrc
ไม่สามารถใช้งานได้
ทำอย่างไรจึงจะได้สิ่งนี้?
คำตอบ:
คุณไม่จำเป็นต้อง เพิ่มไดเรกทอรีไปยัง/etc/ld.so.conf
หรือไฟล์ใหม่/etc/ld.so.conf.d/
ขึ้นอยู่กับ distro
หลังจากนั้นคุณต้องรัน (อย่างน้อยใน Redhat) ldconfig
ในฐานะรูท
เป็นคำเตือนคุณต้องระวังว่าคุณเพิ่มไลบรารีใดลงในพา ธ ไลบรารีที่แบ่งใช้ของระบบ (ผ่านสภาวะแวดล้อม, ld.so.conf หรือวางใน / usr / local / lib) โดยเฉพาะอย่างยิ่งคุณต้องระวังไลบรารีที่แตกต่างกันสองเวอร์ชันที่มีชื่อเดียวกัน ตัวอย่างเช่นหากคุณติดตั้ง libfoo.0.1 (soname libfoo.0) ผ่าน dpkg / rpm / etc คุณไม่ต้องการ libfoo.0.2 (เช่น soname libfoo.0) ในไดเรกทอรีไลบรารีที่กำหนดเองของคุณ
(อันที่จริงแล้วมันไม่ง่ายเลยที่จะดึงตัวแปรสภาพแวดล้อมทั้งระบบคุณสามารถรับการเข้าสู่ระบบของผู้ใช้ส่วนใหญ่/etc/environment
สคริปต์จะขึ้นอยู่กับระบบเริ่มต้นของคุณ แต่ (ตัวอย่าง) ด้วย sysv init บน Debian คุณสามารถใส่มัน/etc/default/rcS
ได้ วิ่งตรงจาก inittab ดีฉันไม่คิดว่าคุณจะทำได้)
คุณสามารถเพิ่มทุกเส้นทางในไฟล์/etc/ld.so.conf.d
จากนั้นเรียกใช้:
ldconfig -v
จากนั้นโหลด