ทำความเข้าใจคำสั่ง Linux — คำสั่ง Unix: ldconfig

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

Ldconfig จะพยายามอนุมานประเภทของ ELF libs (เช่น libc 5.x หรือ libc 6.x (glibc)) ตามไลบรารี C ใดหากมีการเชื่อมโยงไลบรารีใด ๆ ดังนั้นเมื่อทำ ห้องสมุดไดนามิกคุณควรลิงก์กับ libc อย่างชัดเจน (ใช้ -lc)

Ldconfig โดยปกติผู้ใช้ระดับสูงควรรันเนื่องจากอาจต้องได้รับอนุญาตในการเขียนบนไดเร็กทอรีที่เป็นเจ้าของรูทและ ไฟล์. ถ้าคุณใช้ -NS ตัวเลือกในการเปลี่ยนไดเร็กทอรีราก คุณไม่จำเป็นต้องเป็นผู้ใช้ขั้นสูง ตราบใดที่คุณมีสิทธิ์เพียงพอในแผนผังไดเร็กทอรีนั้น

คนที่ทำงานบนคอมพิวเตอร์แล็ปท็อป
รูปภาพ Jag / รูปภาพ Getty

เรื่องย่อ

คำสั่งใช้รูปแบบทั่วไปต่อไปนี้:

ldconfig [ตัวเลือก...]

ตัวเลือก

คำสั่งรองรับตัวเลือกต่อไปนี้:

  • -v: โหมดละเอียด พิมพ์หมายเลขเวอร์ชันปัจจุบัน ชื่อของแต่ละไดเร็กทอรีในขณะที่สแกน และลิงก์ใดๆ ที่สร้างขึ้น
  • -NS: เฉพาะไดเร็กทอรีกระบวนการที่ระบุในบรรทัดคำสั่ง อย่าประมวลผลไดเร็กทอรีที่เชื่อถือได้ (/usr/lib และ /lib) หรือที่ระบุไว้ใน /etc/ld.so.conf. หมายถึง -NS.
  • -NS: อย่าสร้าง .ขึ้นใหม่ แคช. เว้นแต่ -NS ถูกระบุด้วย ลิงก์ยังคงอัปเดตอยู่
  • -NS: อย่าอัปเดตลิงก์ เว้นแต่ -NS ถูกระบุด้วย แคชยังคงถูกสร้างใหม่
  • -f conf: ใช้ conf แทน /etc/ld.so.conf.
  • -C แคช: ใช้แคชแทน /etc/ld.so.cache.
  • -r รูต: เปลี่ยนเป็นและใช้ ราก เป็น ไดเรกทอรีราก.
  • -l: โหมดห้องสมุด เชื่อมโยงแต่ละไลบรารีด้วยตนเอง มีไว้สำหรับใช้โดยผู้เชี่ยวชาญเท่านั้น
  • -NS: ใช้ พิมพ์แคช เพื่อพิมพ์รายการไดเร็กทอรีและไลบรารีตัวเลือกที่เก็บไว้ในแคชปัจจุบัน
  • -ค: รูปแบบ=FORMAT: ระบุรูปแบบของไฟล์แคช ตัวเลือกเก่า ใหม่ และเข้ากันได้ (ค่าเริ่มต้น)
  • -?,ช่วยเหลือ/การใช้งาน: แสดงข้อมูลการใช้งาน
  • -V รุ่น: แสดงเวอร์ชันของโปรแกรม

ตัวอย่าง

ใช้ ldconfig เพื่อตั้งค่าลิงค์ ตัวอย่างเช่น,

# /sbin/ldconfig -v. 

สร้างลิงค์ที่ถูกต้องสำหรับไบนารีที่ใช้ร่วมกันและสร้างแคชใหม่ในขณะที่ทำงาน

# /sbin/ldconfig -n /lib. 

เนื่องจากเป็น root หลังจากการติดตั้งไลบรารีที่ใช้ร่วมกันใหม่จะอัปเดตลิงก์สัญลักษณ์ไลบรารีที่ใช้ร่วมกันใน /lib อย่างถูกต้อง