Hi Thomas und der Rest der Liste!
Am Mittwoch, 4. April 2012 schrieb Thomas Köhler:
Standardproblem. Standardlösung: fakeroot, fakechroot.
Das fakechroot kannte ich noch gar nicht. Gleich mal zu Hause ausprobiert und ein paar Fehlermeldungen bekommen. Ein paar Programme funktionieren und einiges geht nicht. Hier der Stand der Experimente, falls jemand mal das Selbe vor hat:
Setup: Host: Debian lenny Chroot: Debian testing
+++++++++++++++++++++ + + BASH + #~> fakeroot fakechroot chroot /tmp/chroot /bin/bash /bin/bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
=> kann man mit einem link in /tem/chroot/lib beheben cd /temp/chroot/lib ln -sf ./x86_64-linux-gnu/libtinfo.so.5 libtinfo.so.5
(Evt muss man als normaler root nocheinmal in das chroot wechseln und dort "ldconfig" aufrufen. Bin mir da gerade unsicher.)
+++++++++++++++++++++ + + ls + #~> fakeroot fakechroot chroot /tmp/chroot ls ls: /lib/libacl.so.1: version `ACL_1.2' not found (required by ls)
=> ??? selbst wenn man die Bibliothek aus lenny dort hin kopiert, dann funktioniert das nicht. Das "ls" scheint mit neueren Features kompiliert zu sein. ===>> das "ls" aus Lenny einfach in das chroot kopieren (Welche anderen Systemprogramme noch an den ACLs scheitern kann ich momentan nicht sagen.)
+++++++++++++++++++++ + + python + #~> fakeroot fakechroot chroot /tmp/chroot python python: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
=> Die Bibliothek ist in der chroot-Umgebung drin, wird aber nicht gefunden. Kann man mit dem setzen von LD_LIBRARY_PATH beheben: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:\ /tmp/chroot/lib:/tmp/chroot/usr/lib/x86_64-linux-gnu/
+++++++++++++++++++++ + + NumPy in python + #~> fakeroot fakechroot chroot /tmp/chroot python Python 2.7.2+ [...]
import numpy
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/lib/pymodules/python2.7/numpy/__init__.py", line 132, in <module> import add_newdocs File "/usr/lib/pymodules/python2.7/numpy/add_newdocs.py", line 9, in <module> from lib import add_newdoc File "/usr/lib/pymodules/python2.7/numpy/lib/__init__.py", line 4, in <module> from type_check import * File "/usr/lib/pymodules/python2.7/numpy/lib/type_check.py", line 8, in <module> import numpy.core.numeric as _nx File "/usr/lib/pymodules/python2.7/numpy/core/__init__.py", line 5, in <module> import multiarray ImportError: No module named multiarray
==> Die Bibliothek "multiarray.so" gibt es selbstverständlich unter dem angebenen Pfad. In dem chroot ist "multiarray.so" ein Link mit einer absoluten Pfadangabe. Und dieser absolute Pfad ist das Problem. Also in einem relativen Link umwandeln #~> cd /tmp/chroot/usr/lib/pyshared/python2.7/numpy/core/ #~> ln -sf ../../../../pyshared/python2.7/numpy/core/multiarray.so [....] Für alle anderen *.so und *.py-Links mit absoluten Pfaden innerhalb von NumPy wiederholen.