설치된 라이브러리의 위치를 ​​찾는 방법


52

배경 : 프로그램을 작성하려고하지만 먼저 넷빈에 라이브러리를 설정해야합니다. 내 프로젝트는 GLU를 사용하고 있으므로 libglu-dev를 설치했습니다. 도서관이있는 위치는 몰랐는데 지금은 찾을 수 없습니다 ..

나는 며칠 전에 리눅스로 전환했으며 지금까지는 매우 만족 스럽지만 구글에서 찾을 수 없어서 좌절감을 느꼈습니다. 다시 설치 하시겠습니까? 라이브러리 xxx를 가져 와서 얼마 전에 설치했다면 이 정보를 인쇄하는 xxx 명령 이 있습니까?

나는 찾기, 찾기 및 whereis 명령을 이미 시도했지만 뭔가 빠졌거나 제대로 수행 할 수 없습니다. libglu의 경우 locate는 다음을 반환합니다.

/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 파일 업데이트를 수행해야합니다. apt-file list는 dpkg -L과 동일하지만 패키지를 먼저 설치할 필요가 없습니다. apt 파일 검색을 통해 특정 파일을 제공하는 패키지를 찾을 수 있습니다. 멋진 도구 :)
Jo-Erlend Schinstad

1
sudo에 필요하지 않습니다 dpkg -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.