multiarch und dlopen oder: was ist aus libfoo.so geworden?

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

multiarch und dlopen oder: was ist aus libfoo.so geworden?

Beitrag von cosmac » 05.08.2013 16:12:44

hallo miteinander!

gibt es einen Plan, wie ein Programm per dlopen() seine libfoo.so finden kann? Der aktuelle Anlass: hc12mem¹ möchte die libusb.so benutzen und verwendet genau diesen kurzen Namen. Es ist eine reine 32-Bit-Installation (wheezy), aber viele libs sind trotzdem in neuen Verzeichnissen "versteckt".

Laut Debian New Maintainers' Guide² soll ein dev-Package einen symlink ohne Versionsnummer erzeugen. Allerdings nützt der nichts, wenn er unter nicht unter /lib oder /usr/lib erstellt wird. Woher soll ein altes Programm den neuen multiarch-Pfad kennen? Und warum muss man dafür das dev-Paket installieren? Dass keins der libusb-Pakete einen symlink erzeugt, ist auch kein Trost.

1) http://sourceforge.net/projects/hcs12mem/
2) http://www.debian.org/doc/manuals/maint ... #multiarch
Beware of programmers who carry screwdrivers.

wanne
Moderator
Beiträge: 7622
Registriert: 24.05.2010 12:39:42

Re: multiarch und dlopen oder: was ist aus libfoo.so geworde

Beitrag von wanne » 05.08.2013 16:43:05

$ apt-file search --regexp "(/usr)?/lib(32)?/.*/libusb.so"
ich glaube

Code: Alles auswählen

export LD_LIBRARY_PATH=/lib:/usr/lib:/lib32:/usr/lib32 
sollte dir helfen. Siehe man ldopen
Zuletzt geändert von wanne am 05.08.2013 23:01:08, insgesamt 1-mal geändert.
rot: Moderator wanne spricht, default: User wanne spricht.

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: multiarch und dlopen oder: was ist aus libfoo.so geworde

Beitrag von cosmac » 05.08.2013 20:01:46

wanne hat geschrieben:$ apt-file search --regexp "(/usr)?/lib/.*/libusb.so"
Danke, das brachte die Erleuchtung: ich hatte zwar libusb-1.0-0-dev installiert, aber nicht libusb-dev; jetzt geht's. Immerhin muss man nicht schwere Geschütze wie LD_LIBRARY_PATH auffahren.

Mich würde trotzdem interessieren, warum ich als normaler Anwender die -dev-Pakete installieren muss. Sollte der Link nicht schon vom normalen Paket eingerichtet werden? Oder werden Programme entsprechend gepatched wenn ein Debian-Paket gebaut wird? Von libusb-dev hängt nämlich kein normales Paket ab und mein hc12mem stammt nicht von Debian...
Beware of programmers who carry screwdrivers.

Antworten