Shared object "libz.so.1" not found

bsd4me

Well-Known Member
Hallo Leute,

hier mein Anliegen - und zwar geht es um die Software rMATS - da gibt es auch einige binäre Linux Sachen drin. so sieht es aus:

[rMATS-turbo-Linux-UCS2] > ll
total 7864
drwxr-xr-x 4 appl admin 7 Apr 25 2018 .
drwxr-xr-x 4 appl admin 4 Apr 25 2018 ..
-rw-r--r-- 1 appl admin 8673 Apr 19 2018 README-rMATS-turbo.md
drwxr-xr-x 2 appl admin 3 Apr 19 2018 rMATS_C
drwxr-xr-x 2 appl admin 6 Apr 19 2018 rMATS_P
-rw-r--r-- 1 appl admin 12661 Apr 19 2018 rmats.py
-rwxr-xr-x 1 appl admin 7948285 Apr 19 2018 rmatspipeline.so

[rMATS-turbo-Linux-UCS2] > python rmats.py
Traceback (most recent call last):
File "rmats.py", line 17, in <module>
from rmatspipeline import run_pipe
ImportError: Shared object "libz.so.1" not found, required by "rmatspipeline.so"

[rMATS-turbo-Linux-UCS2] > find /compat/linux -name "libz*"
/compat/linux/usr/lib64/libz.so.1.2.7
/compat/linux/usr/lib64/libz.so.1
/compat/linux/usr/lib/libz.so.1
/compat/linux/usr/lib/libz.so.1.2.7

hat jemand eine Idee, was zu tun ist?

Danke - Norbert

?
 
Schau mal in ldconfig(8) - und zum testen LD_LIBRARY_PATH.
Wobei ich adhoc nicht weiss, ob das bei so "hintenrum" importen durch python wirklich zieht.
 
danke - aber ist aufwendiger als gedacht...

[rMATS-turbo-Linux-UCS4] > setenv LD_LIBRARY_PATH /compat/linux/usr/lib
[rMATS-turbo-Linux-UCS4] > python rmats.py
Traceback (most recent call last):
File "rmats.py", line 17, in <module>
from rmatspipeline import run_pipe
ImportError: /compat/linux/usr/lib/libstdc++.so.6: unsupported file layout

da python selber unter FreeBSD läuft und es eine Liunx lib nutzen soll - ist das sicherlich nicht zuträglich. Gibt er eine Möglichkeit python unter der Linux emulation laufen zu laasen? so nach dem Motto: pkg install linux-python??

Norbert :)
 
pkg install linux-python
ich weiß nicht, ob ich das nun richtig verstanden habe.
Es sollte möglich sein, Linux-Pakete unter Linux zu installieren.
Ich weiß nun nicht, welches Linux in FreeBSD benutzt wird. Grundsätzlich kann das ja auch ausgetauscht werden und dann wäre das in etwa so, dass man ins Linux chrootet und dort das Paketsystem der Distribution benutzt, um zusätzliche SW zu installieren, die dann wiederum im Linux-Chroot ausgeführt werden kann.
Angenommen, es würde derzeit debian benutzt, dann würde ein apt install wasauchimmer das Paket der Wahl installieren (vorausgesetzt es existiert im Repo und dazu müssen dann evtl die passenden Pfade in den source.lists gepflegt werden). Zuletzt fand ich ein Rhel unter FreeBSD und dessen Paketmanagement erinnere ich nicht mehr, dazu kann man aber sicher was im Netz finden. Auch damals konnte ich zusätzlich SW installieren und im chroot ausführen.

Daneben könnte man an eine VM mit einer aktuellen Linux-Installation denken, was ich derzeit bevorzuge. Mit den FreeBSD-Linuxen war ich irgendwie nie wirklich glücklich. VirtualBox wird von vielen Systemen unterstützt und ist recht einfach zu nutzen.
 
Danke :) Nun, das Thema ist nicht mehr aktuell, da diese Software gar nicht benötigt wird... Aber zur Info: Ich nutze das linux_base-c7. Und das aufrufende Programm ist ein python script - welches iregndwie ein *.so einbindet - und dieses *.so ist eine Linux library. Von daher beisst es sich, da python aus *BSD und das *.so aus Linux stammt...
VG Norbert
 
python aus *BSD und das *.so aus Linux stammt...
wenn das eh obsolet ist, sollten wir es nicht weiter vertiefen.
Was ich meinte war eben, ob nicht das Python-Script NICHT in FreeBSD aufgerufen wird, sondern aus der chroot in Linux. Also, zB /usr/compat/linux/ sei das Rootverzeichnis deiner Linux Installation, dann cp dein/Py.sh /usr/compat/linux/woauchimmer, dann chroot /usr/compat/linux/ und nun das Py.sh aufrufen (wozu dann sicher erst noch eine passende Python Version im Linux installiert werden müsste, ich kann mir nicht vorstellen, dass die schon enthalten ist und dazu bräuchte man die Installationswerkzeuge der Linux-Distri aus der chroot-Umgebung heraus).
 
Zurück
Oben