3 คะแนน โดย GN⁺ 2024-06-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

เครื่องมือ libtree

ความสามารถ

  • แปลงคำสั่ง ldd ให้อยู่ในรูปแบบต้นไม้
  • อธิบายว่า shared library ถูกค้นพบได้อย่างไร หรือทำไมจึงหาไม่พบ

เอาต์พุต

  • โดยปกติจะไม่แสดง dependency มาตรฐานบางรายการ
  • สามารถใช้คำสั่งต่อไปนี้เพื่อดูเอาต์พุตที่ละเอียดขึ้น:
    • libtree -v: แสดงไลบรารีที่ถูกละไว้โดยปริยาย
    • libtree -vv: แสดง dependency ของไลบรารีที่ถูกละไว้
    • libtree -vvv: แสดง dependency ของไลบรารีที่ค้นพบแล้ว
  • ใช้แฟล็ก --path หรือ -p เพื่อแสดงพาธแทน soname:
    • ตัวอย่าง: libtree -p $(which tar)
  • ใช้แฟล็ก --max-depth เพื่อจำกัดความลึกของการเรียกซ้ำได้

การติดตั้ง

  • ไบนารีที่คอมไพล์ไว้ล่วงหน้าของเวอร์ชัน v3.1.1:
    • aarch64 (linux): c5d4fbcd4e3fb46f02c028532f60fcf1c92f7c6aad5b07a991c67550c2554862
    • armv6l (linux): 16f5a7503a095bd88ebc5e21ec4ba8337c5d9712cac355bf89399c9e6beef661
    • armv7l (linux): 17f493621e7cc651e2bddef207c1554a64a114e1c907dbe5b79ff0e97180b29e
    • i686 (linux): 230a163c20f4a88a983d8647a9aa793317be6556e2c6a79e8a6295389e651ef5
    • x86_64 (linux): 49218482f89648972ea4ef38cf986e85268efd1ce8f27fe14b23124bca009e6f
  • Fedora / RHEL / CentOS:
    • $ dnf install epel-release (สำหรับ RHEL และดิสโทรสายเดียวกัน ให้เปิดใช้ EPEL ก่อน)
    • $ dnf install libtree-ldd
  • Ubuntu 22.04+:
    • $ apt-get install libtree
  • GNU Guix:
    • $ guix install libtree

บิลด์จากซอร์ส

ความเห็นจาก GN⁺

  • libtree มีประโยชน์ในการทำความเข้าใจ dependency ของ shared library ในเชิงภาพ ซึ่งช่วยได้มากทั้งในการดีบักและการดูแลระบบ
  • libtree ติดตั้งได้ง่ายบนลินุกซ์ดิสโทรหลายแบบ จึงเข้าถึงได้ง่าย
  • สามารถบิลด์จากซอร์สได้โดยตรง จึงปรับแต่งได้ตามต้องการ
  • เครื่องมือนี้มีประโยชน์อย่างยิ่งในการจัดการ dependency ของไลบรารีในโปรเจ็กต์ที่ซับซ้อน
  • เครื่องมือที่มีความสามารถคล้ายกันมี ldd และ readelf แต่ libtree แสดงผลเป็นโครงสร้างต้นไม้ จึงเข้าใจได้ตรงไปตรงมามากกว่า

1 ความคิดเห็น

 
kayws426 2024-06-11

ดูดีนะ!!