• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

Pfad zu einer dynamisch gelinkten Bibliothek im Nachhinein ändern

Themenstarter #1
Hi,

um eine für ältere Anwendungen kompatible OpenSSL-Installation vorzuhalten, habe ich ein Paket aus dem aktuell installierten Port erstellt und diese einfach nach /opt/compat/openssl-1.0.2t entpackt:

Code:
# cd /tmp
# pkg create openssl
# mkdir -p /opt/compat/openssl-1.0.2t
# cd /opt/compat/openssl-1.0.2t
# tar --strip-components 3 -xzf /tmp/openssl-1.0.2t,1.txz
Nun habe ich aber das Problem, dass die Bibliiotheken dort noch den Standardpfad zu z.B. libcrypto.so innehaben:

Code:
# ldd /opt/compat/openssl-1.0.2t/lib/libssl.so
/opt/compat/openssl-1.0.2t/lib/libssl.so:
    libcrypto.so.9 => /usr/local/lib/libcrypto.so.9 (0x801674000)
    libthr.so.3 => /lib/libthr.so.3 (0x801a84000)
    libc.so.7 => /lib/libc.so.7 (0x800821000)
Kann ich diesen Pfad irgendwie im Nachhinein ändern?

Rob
 

Yamagi

Possessed With Psi Powers
Mitarbeiter
#3
Der eleganteste Weg ist die libmap.conf: https://www.freebsd.org/cgi/man.cgi?query=libmap.conf Das ist im Prinzip das Gleiche wie die ldconfig(8) Variablen, nur etwas kontrollierbarer. Ich würde das erstmal so versuchen.

Alternativ kann man mit einem Hexeditor den Pfad in der Bibliothek ändern. Voraussetzung dafür ist, dass der neue Pfad exakt gleich lang ist. Dort kann man ausnutzen, dass Unix-Dateisysteme mehrere aufeinanderfolgende Slashs ignorieren. Also fehlende Zeichen zur benötigten Länge so auffüllen: /pfad/zur/////////bibliothek.so
 

pit234a

Well-Known Member
#5
Alternativ kann man mit einem Hexeditor den Pfad in der Bibliothek ändern.
was benutzt man denn da heute so mit FreeBSD?
Den letzten, den ich selbst benutzt habe, war noch unter KDE und hieß khexedit. Es war bei meinem Abschied von KDE eines der Dinge, für die ich keine Alternativen finden konnte. Hatte es auch seither nicht mehr gebraucht (hätte einen Fall gehabt, konnte da aber mittels dd in GNU/Linux Bit-genau Bytes ersetzen).
 

medV2

Well-Known Member
#6
was benutzt man denn da heute so mit FreeBSD?
Den letzten, den ich selbst benutzt habe, war noch unter KDE und hieß khexedit. Es war bei meinem Abschied von KDE eines der Dinge, für die ich keine Alternativen finden konnte. Hatte es auch seither nicht mehr gebraucht (hätte einen Fall gehabt, konnte da aber mittels dd in GNU/Linux Bit-genau Bytes ersetzen).
Auf der Konsole editors/hexedit
 

Crest

rm -rf /*
Mitarbeiter
#10
Der eleganteste Weg ist die libmap.conf: https://www.freebsd.org/cgi/man.cgi?query=libmap.conf Das ist im Prinzip das Gleiche wie die ldconfig(8) Variablen, nur etwas kontrollierbarer. Ich würde das erstmal so versuchen.

Alternativ kann man mit einem Hexeditor den Pfad in der Bibliothek ändern. Voraussetzung dafür ist, dass der neue Pfad exakt gleich lang ist. Dort kann man ausnutzen, dass Unix-Dateisysteme mehrere aufeinanderfolgende Slashs ignorieren. Also fehlende Zeichen zur benötigten Länge so auffüllen: /pfad/zur/////////bibliothek.so
Dein Vorschlag ist widerlich genug, dass mein Finger über dem Reportbutton schwebte :-P.