ฉันต้องการส่งออก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
จากนั้นโหลด