Cómo encontrar la ubicación de la biblioteca instalada

52

Antecedentes: estoy tratando de construir mi programa pero primero necesito configurar bibliotecas en netbeans. Mi proyecto está utilizando GLU y, por lo tanto, instalé libglu-dev. No noté la ubicación donde se ubicaban las bibliotecas y ahora no puedo encontrarlas.

Me cambié a Linux hace unos días y hasta ahora estoy muy contento con él, sin embargo, no pude buscarlo en Google y sentirme frustrado. ¿Hay alguna manera de averiguar dónde se instalaron los archivos del paquete sin ejecutarlo? instalación de nuevo? Quiero decir, si obtuve la biblioteca xxx y la instalé hace algún tiempo, ¿hay algún comando xxx que imprima esta información?

Ya he intentado los comandos de localizar, encontrar y whereis, pero o me falta algo o simplemente no puedo hacerlo correctamente ... para libglu, localizar devuelve:

/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

Otros dos comandos no pueden encontrar nada. Ahora localizar hizo su trabajo, pero estoy seguro de que ninguna de esas rutas es donde reside realmente la biblioteca (al menos todo lo que estaba enlazando hasta ahora estaba en / usr / lib o usr / local / lib).

El libglu se introdujo solo como ejemplo, estoy buscando una solución general para este problema.

Cuervo
fuente

Respuestas:

68

¡Fácil! dpkg -L packagename. Eso enumerará todos los archivos (con ubicación) que trajo el paquete.

Jo-Erlend Schinstad
fuente
1
Wow, exactamente lo que estaba buscando, gracias! Solo una nota rápida: la que estaba buscando es /usr/lib/i386-linux-gnu/libGLU.so.1(obtenida con dpkg) y el nombre real de la biblioteca para el comando es libglu1-mesa.
Raven
3
Excelente. También recomendaré apt-file. Debe instalarse y luego debe realizar la actualización del archivo apt. La lista de archivos apt hace lo mismo que dpkg -L, pero sin la necesidad de instalar el paquete primero. apt-file search le permite averiguar qué paquete proporciona un determinado archivo. Herramientas geniales :)
Jo-Erlend Schinstad
1
sudoNo es necesario para dpkg -L.
MoonSweep
8

En caso de que no esté seguro sobre el nombre del paquete, puede enumerar todos los paquetes e intentar encontrar los solicitados:

 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
fuente