Como encontrar o local da biblioteca instalada

52

Antecedentes: estou tentando criar meu programa, mas primeiro preciso configurar bibliotecas no netbeans. Meu projeto está usando GLU e, portanto, instalei o libglu-dev. Não anotei o local onde as bibliotecas estavam localizadas e agora não consigo encontrá-las.

Eu mudei para o Linux há apenas alguns dias e até agora estou muito contente com ele, mas não consegui pesquisar no Google e fiquei frustrado. Existe uma maneira de descobrir onde os arquivos do pacote foram instalados sem executar instalação de novo? Quero dizer, se eu obtive a biblioteca xxx e a instalei há algum tempo, existe algum comando xxx que imprima essas informações?

Eu já tentei localizar, localizar e comandos whereis, mas ou estou perdendo alguma coisa ou simplesmente não consigo fazê-lo corretamente. Para a libglu, o local retorna:

/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

Outros dois comandos não conseguem encontrar nada. Agora localize o trabalho, mas tenho certeza de que nenhum desses caminhos é onde a biblioteca realmente reside (pelo menos tudo o que eu estava vinculando até agora estava em / usr / lib ou usr / local / lib).

O libglu foi introduzido apenas como exemplo, estou procurando uma solução geral para esse problema.

Raven
fonte

Respostas:

68

Fácil! dpkg -L packagename. Isso listará todos os arquivos (com localização) que foram trazidos pelo pacote.

Jo-Erlend Schinstad
fonte
11
Uau, exatamente o que eu estava procurando, obrigado! Apenas uma observação rápida: a que eu estava procurando é /usr/lib/i386-linux-gnu/libGLU.so.1(obtida com o dpkg) e o nome real da biblioteca para o comando é libglu1-mesa.
Raven
3
Ótimo. Também vou recomendar o arquivo apt. Ele precisa ser instalado e você precisa fazer a atualização do arquivo apt. A lista de arquivos apt faz o mesmo que dpkg -L, mas sem a necessidade de instalar o pacote primeiro. A pesquisa de arquivos apt permite que você descubra qual pacote fornece um determinado arquivo. Cool Tools :)
Jo-Erlend Schinstad
11
sudonão é necessário para dpkg -L.
MoonSweep
8

Caso não tenha certeza sobre o nome do pacote, você pode listar todos os pacotes e tentar encontrar o pedido:

 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
0x8BADF00D
fonte