Làm thế nào để tìm vị trí của thư viện cài đặt


52

Bối cảnh: Tôi đang cố gắng xây dựng chương trình của mình nhưng trước tiên tôi cần thiết lập thư viện trong netbeans. Dự án của tôi đang sử dụng GLU và do đó tôi đã cài đặt libglu-dev. Tôi đã không lưu ý vị trí nơi các thư viện được đặt và bây giờ tôi không thể tìm thấy chúng ..

Tôi mới chuyển sang Linux cách đây vài ngày và cho đến nay tôi rất hài lòng với nó, tuy nhiên tôi không thể google cái này ra và trở nên bực bội .. Có cách nào để tìm ra nơi các tệp của gói được cài đặt mà không chạy cài đặt lại? Ý tôi là nếu tôi có thư viện xxx và cài đặt nó một thời gian trước đây, có ai đó xxx sẽ in thông tin này không?

Tôi đã thử xác định vị trí, tìm và tìm lệnh nhưng tôi thiếu thứ gì đó hoặc tôi không thể thực hiện chính xác .. đối với libglu, xác định vị trí trả về:

/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

Hai lệnh khác không tìm thấy gì. Bây giờ định vị đã thực hiện công việc của mình nhưng tôi chắc chắn không có con đường nào là nơi thư viện thực sự cư trú (ít nhất là tất cả mọi thứ tôi đã liên kết cho đến nay là trong / usr / lib hoặc usr / local / lib).

Libglu được giới thiệu giống như ví dụ, tôi đang tìm giải pháp chung cho vấn đề này.

Câu trả lời:


68

Dễ dàng! dpkg -L packagename. Điều đó sẽ liệt kê tất cả các tệp (có vị trí) được gói mang vào.


1
Wow, chính xác những gì tôi đang tìm kiếm, cảm ơn! Chỉ cần một lưu ý nhanh: cái tôi đang tìm là /usr/lib/i386-linux-gnu/libGLU.so.1(thu được với dpkg) và tên thực tế của thư viện cho lệnh là libglu1-mesa.
Quạ

3
Tuyệt quá. Tôi cũng sẽ giới thiệu tệp apt. Nó cần phải được cài đặt và sau đó bạn cần thực hiện cập nhật tệp apt. danh sách apt-file thực hiện tương tự như dpkg -L, nhưng không cần cài đặt gói trước. Tìm kiếm tệp apt cho phép bạn tìm ra gói nào cung cấp một tệp nhất định. Công cụ mát mẻ :)
Jo-Erlend Schinstad

1
sudolà không cần thiết cho dpkg -L.
MoonSweep

8

Trong trường hợp nếu bạn không chắc chắn về tên gói, bạn có thể liệt kê tất cả các gói và cố gắng tìm yêu cầu:

 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.