ฉันสามารถใช้ ld.so.cache ของตัวเองได้หรือไม่?


14

ldconfig มีสองตัวเลือกที่น่าสนใจ:

-f conf
      Use conf instead of /etc/ld.so.conf.
-C cache
      Use cache instead of /etc/ld.so.cache.

ฉันพยายามคัดลอก/etc/ld.so.confไปยังโฮมไดเร็กตอรี่ของฉันเอง, และแก้ไขมันเพื่อรวมพา ธ ไปยังไลบรารี่ในท้องถิ่นของฉัน/home/syockit/local/usr/libเป็นต้นและวิ่งไป

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache

และต่อมาเพื่อยืนยันว่าไลบรารีถูกแคชฉันก็วิ่ง

ldconfig -f /home/syockit/ld.so.conf -C /home/syockit/ld.so.cache -p | less

และมันรวมไลบรารีทั้งหมดของฉันไว้ด้านบนรวมถึงไลบรารีระบบด้วย

ตอนนี้ฉันต้องการให้ลิงเกอร์เริ่มต้นใช้สองสิ่งนี้ แต่ในman ld.soผมเห็นไม่มีการเอ่ยถึงความสามารถในการใช้งานที่กำหนดเองหรือ.conf .cacheแล้วจุดของสองตัวเลือกข้างต้นldconfigนั้นคืออะไร?

คำตอบ:


9

ฉันคิดว่าคำตอบสำหรับคำถามของคุณคือไม่แม้ว่าคุณจะสามารถทำสิ่งเดียวกันได้ด้วยวิธีอื่น

ใน man ld.so ฉันไม่เห็นการเอ่ยถึงความสามารถในการใช้ custom .conf หรือ. cache

จริง แต่มีการพูดถึง$LD_LIBRARY_PATHและและ--library-pathอดีตเป็นประโยชน์โดยทั่วไปมากขึ้น

ประเด็นของตัวเลือกสองข้อด้านบนldconfigนั้นคืออะไร

ดังนั้นคุณสามารถสร้างแคชโดยไม่ต้องเขียนทับระบบหนึ่งและไม่ต้องใช้ระบบ confs


... เพียงแค่ห่ามัน? หรือมันเป็นระบบนิติเวช?
syockit

1
อาจเป็นภาพระบบหรือสภาพแวดล้อม chroot ฯลฯ
goldilocks

5

/etc/ld.so.confอ่านโดยเท่านั้นldconfig(โปรแกรมสร้างแคช) ไม่ใช่โดยld.so(ตัวโหลดไดนามิก) คุณสามารถเปลี่ยนตำแหน่งของไฟล์กำหนดค่าหากคุณต้องการสร้างแคชที่แตกต่างจากค่าเริ่มต้นของระบบ

/etc/ld.so.cacheถูกอ่านld.soและคุณไม่สามารถอ่านจากที่อื่นได้ ldconfigมันจะมีประโยชน์กระนั้นจะผ่านที่ตั้งเอาท์พุทที่แตกต่างกันไป กรณีการใช้งานที่พบบ่อยที่สุดคือสภาพแวดล้อมchroot คุณสามารถใช้ldconfig -r /some/rootเพื่อรันldconfigบนรูตสำรองและวางเอาต์พุตได้ทุกที่ที่คุณต้องการ (ภายในหรือนอกรูตนั้น) คุณจะต้องปล่อยเอาต์พุตที่/some/root/etc/ld.so.cacheหรือคัดลอกที่นั่นในภายหลัง มีกรณีการใช้งานที่ไม่ชัดเจนพอสมควรตัวอย่างเช่นหากคุณต้องการเรียกใช้ldconfigในฐานะผู้ใช้ที่ไม่มีสิทธิ์ (ผู้ที่ไม่สามารถเขียน/etc/ld.so.cache) และย้ายไฟล์ไปไว้ที่อื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.