/etc/ld.so.conf
นี้ไม่ได้เป็นที่ซ้ำกันเพราะนี่คือการจัดการกับความไม่ชอบมาพากลผมสังเกตเห็นเมื่อฉันใช้
ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
เพื่อให้ได้เส้นทางที่ใช้การค้นหาแบบไดนามิกในลิงเกอร์สำหรับห้องสมุดผมเรียกใช้คำสั่ง เมื่อ/etc/ld.so.conf
ไม่มีเส้นทางที่ระบุไว้ในนั้น เอาต์พุตจากคำสั่งก่อนหน้าคือ
/lib
/usr/lib
ฉันคิดว่ามันค้นหาเป็นครั้งแรกแล้ว/lib
/usr/lib
เมื่อฉันเพิ่มเส้นทางใหม่เช่น/usr/local/lib
ไปยัง/etc/ld.so.conf
แล้วสร้างใหม่/etc/ld.so.cache
ผลลัพธ์จากการldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
กลายเป็น
/usr/local/lib
/lib
/usr/lib
ฉันพบนี้แปลกเพราะถ้าผมถูกต้องว่าคำสั่งที่ระบุไว้ไดเรกทอรีที่มีการค้นหาในคือจากบนลงล่างแล้วไดเรกทอรีเพิ่มเติมที่จะค้นหาก่อนและ/lib
/usr/lib
ว่าไดเรกทอรีเพิ่มเติมที่จะค้นหาก่อนไดเรกทอรีที่เชื่อถือได้ไม่แปลกในตัวเอง แต่เมื่อ/lib
มีการค้นหาก่อน/usr/lib
ที่แปลกเพราะ/bin
และ/sbin
มีการค้นหาหลังจาก/usr/bin
และใน/usr/sbin
PATH
แม้ว่าเส้นทางที่ระบุไว้โดยldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
ถูกค้นจากด้านล่างสู่ด้านบนก็จะยังคงสั่งเบ้เพราะไดเรกทอรีเพิ่มเติมจะได้รับการสืบค้นหลังจากคนที่เชื่อถือได้ในขณะที่จะได้รับการสืบค้นหลัง/lib
/usr/lib
ดังนั้นคำสั่งที่ld.so
ค้นหาพา ธ สำหรับห้องสมุดมีอะไรบ้าง ทำไม/lib
สืบค้นก่อน/usr/lib
? ถ้ามันไม่ได้แล้วทำไมเป็นไดเรกทอรีเพิ่มเติมสืบค้นหลัง/lib
?