So finden Sie den Speicherort der installierten Bibliothek

52

Hintergrund: Ich versuche mein Programm zu erstellen, aber zuerst muss ich Bibliotheken in NetBeans einrichten. Mein Projekt verwendet GLU und deshalb habe ich libglu-dev installiert. Ich habe den Ort, an dem sich die Bibliotheken befanden, nicht notiert und kann sie jetzt nicht finden.

Ich bin erst vor ein paar Tagen auf Linux umgestiegen und bin bisher sehr zufrieden damit, aber ich konnte dieses nicht googeln und frustriert werden Installation nochmal? Ich meine, wenn ich die Bibliothek xxx habe und sie vor einiger Zeit installiert habe, gibt es einen Befehl xxx , der diese Informationen ausgibt ?

Ich habe bereits die Befehle locate, find und whereis ausprobiert, aber entweder fehlt mir etwas oder ich kann es einfach nicht richtig machen.

/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

Die anderen beiden Befehle können nichts finden. Jetzt hat locate seinen Job gemacht, aber ich bin sicher, dass sich auf keinem dieser Pfade die Bibliothek befindet (zumindest war alles, was ich bisher verlinkt habe, in / usr / lib oder usr / local / lib).

Das libglu wurde nur als Beispiel vorgestellt, ich suche nach einer generellen Lösung für dieses Problem.

Rabe
quelle

Antworten:

68

Einfach! dpkg -L packagename. Daraufhin werden alle vom Paket eingebrachten Dateien (mit Speicherort) aufgelistet.

Jo-Erlend Schinstad
quelle
1
Wow, genau das, wonach ich gesucht habe, danke! Nur eine kurze Anmerkung: Die /usr/lib/i386-linux-gnu/libGLU.so.1gesuchte ist (mit dpkg erhalten) und der tatsächliche Name der Bibliothek für den Befehl lautet libglu1-mesa.
Raven
3
Toll. Ich empfehle auch apt-file. Es muss installiert werden und danach müssen Sie die apt-Datei aktualisieren. apt-file list verhält sich wie dpkg -L, jedoch ohne dass das Paket zuerst installiert werden muss. Mit apt-file search können Sie herausfinden, welches Paket eine bestimmte Datei enthält. Coole Tools :)
Jo-Erlend Schinstad
1
sudowird nicht benötigt für dpkg -L.
MoonSweep
8

Falls Sie sich über den Paketnamen nicht sicher sind, können Sie alle Pakete auflisten und versuchen, die angeforderte zu finden:

 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
quelle