วิธีค้นหาตำแหน่งที่ตั้งของไลบรารีที่ติดตั้ง


52

ความเป็นมา: ฉันกำลังพยายามสร้างโปรแกรมของฉัน แต่ก่อนอื่นฉันต้องตั้งค่าไลบรารีในเน็ตเบียน โครงการของฉันใช้ GLU ดังนั้นฉันจึงติดตั้ง libglu-dev ฉันไม่ได้บันทึกตำแหน่งที่ห้องสมุดตั้งอยู่และตอนนี้ฉันไม่พบพวกเขา ..

ฉันได้เปลี่ยนมาใช้ Linux เมื่อไม่กี่วันที่ผ่านมาและจนถึงตอนนี้ฉันพอใจกับมันมาก แต่ฉันก็ไม่สามารถ google ตัวนี้ออกมาแล้วรู้สึกหงุดหงิด .. มีวิธีที่จะค้นหาตำแหน่งของไฟล์แพคเกจที่ติดตั้งโดยไม่ทำงานหรือไม่ ติดตั้งอีกครั้งหรือไม่ ฉันหมายความว่าถ้าฉันมีไลบรารี่ xxx และติดตั้งเมื่อไม่นานมานี้มีบางคำสั่งที่ xxxที่จะพิมพ์ข้อมูลนี้หรือไม่?

ฉันได้ลองค้นหาคำสั่ง find และ whereis แล้ว แต่ถ้าฉันทำอะไรหายไปหรือฉันทำไม่ถูกต้อง .. สำหรับ libglu, return return:

/usr/share/bug/libglu1-mesa
/usr/share/bug/libglu1-mesa/control
/usr/share/bug/libglu1-mesa/script
/usr/share/doc/libglu1-mesa
/usr/share/doc/libglu1-mesa/changelog.Debian.gz
/usr/share/doc/libglu1-mesa/copyright
/usr/share/lintian/overrides/libglu1-mesa
/var/lib/dpkg/info/libglu1-mesa:i386.list
/var/lib/dpkg/info/libglu1-mesa:i386.md5sums
/var/lib/dpkg/info/libglu1-mesa:i386.postinst
/var/lib/dpkg/info/libglu1-mesa:i386.postrm
/var/lib/dpkg/info/libglu1-mesa:i386.shlibs

อีกสองคำสั่งไม่พบอะไรเลย ตอนนี้ค้นหาไม่ทำงาน แต่ฉันแน่ใจว่าไม่มีเส้นทางเหล่านั้นที่ห้องสมุดอยู่จริง ๆ (อย่างน้อยทุกอย่างที่ฉันเชื่อมโยงจนถึงใน / usr / lib หรือ usr / local / lib)

ตัวอย่าง libglu ถูกนำเสนอเช่นเดียวกับฉันกำลังมองหาวิธีแก้ไขปัญหาทั่วไปสำหรับปัญหานี้

คำตอบ:


68

ง่าย! dpkg -L packagename. ที่จะแสดงรายการไฟล์ทั้งหมด (พร้อมตำแหน่ง) ที่นำเข้ามาในแพ็คเกจ


1
ว้าวสิ่งที่ฉันกำลังมองหาขอบคุณ! เพียงบันทึกย่อ: สิ่งที่ฉันกำลังมองหาคือ/usr/lib/i386-linux-gnu/libGLU.so.1(ได้มาด้วย dpkg) และชื่อจริงของไลบรารีสำหรับคำสั่งคือ libglu1-mesa
Raven

3
ยิ่งใหญ่ ฉันจะแนะนำ apt-file ด้วย จะต้องมีการติดตั้งและจากนั้นคุณต้องทำการปรับปรุง apt-file รายการ apt-file ทำเหมือนกับ dpkg -L แต่ไม่จำเป็นต้องติดตั้งแพ็กเกจก่อน การค้นหา apt-file ช่วยให้คุณค้นหาแพ็คเกจที่ให้ไฟล์ที่แน่นอน เครื่องมือเจ๋ง ๆ :)
Jo-Erlend Schinstad

1
sudodpkg -Lไม่จำเป็นสำหรับ
MoonSweep

8

ในกรณีที่คุณไม่แน่ใจเกี่ยวกับชื่อแพ็คเกจคุณสามารถแสดงรายการแพ็คเกจทั้งหมดและลองค้นหาตามที่ร้องขอ:

 dpkg --get-selections | grep -v deinstall | grep <packagename>

 For example:
      $dpkg --get-selections | grep -v deinstall | grep zip
 Output:
      bzip2                      install
      gzipinstall
      p7zip-fullinstall
      unzipinstall                                                                       
      zipinstall                         
  And then:
      $ dpkg -L zip
  Output:
      /.  
      /usr
      /usr/share
      /usr/share/doc
      /usr/share/doc/zip
      /usr/share/doc/zip/copyright
      /usr/share/doc/zip/TODO
      /usr/share/doc/zip/changelog.Debian.gz
      /usr/share/doc/zip/WHATSNEW
      /usr/share/man
      /usr/share/man/man1
      /usr/share/man/man1/zipsplit.1.gz
      /usr/share/man/man1/zipcloak.1.gz
      /usr/share/man/man1/zip.1.gz
      /usr/share/man/man1/zipnote.1.gz
      /usr/bin
      /usr/bin/zipsplit
      /usr/bin/zipcloak
      /usr/bin/zip
      /usr/bin/zipnote
      /usr/share/doc/zip/changelog.gz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.