Hallo Leute,
von Euch hat doch bestimmt auch der ein oder andere das Problem, dass er unbedingt eine bestimmte Software benötigt, aber nicht die nötigen root- Rechte für die Installation hat.
Aufgabenstellung: Konkret will ich mir auf CentOS6.2 ein aktuelleres Python mit NumPy und SciPy installieren. Das Problem dabei ist, dass bei CentOS6.2 nur ein steinaltes NumPy dabei ist und SciPy vollkommen fehlt. Die Abhängigkeitsliste zum Bauen von SciPy ist länger als mein Arm. Das sind u.a. Bibliotheken für numerisches Zeug (ATLAS, BLAS, MKL, ...) dabei und das will man nicht selber bauen.
Lösungsansatz: Man nehme sich ein debootstrap und baue sich eine chroot-Umgebung mit debian-testing. Zu Hause mit Root-Rechten geht das auch wunderbar.
Problem: @work wollen die mir keine Root-Rechte zum Wechsel in die chroot-Umgebung geben. Und als normaler Nutzer kann man nicht "chrooten" :-/
Idee: Man setze die Umgebungsvariablen PATH und LD_LIBRARY_PATH auf die Pfade innerhalb der chroot-Umgebung. Hier für die tcsh:
<----------------------> setenv CHROOT "/data/debian_testing_chroot2"
setenv LD_LIBRARY_PATH ${CHROOT}/lib:${CHROOT}/lib64:${CHROOT}/usr/lib: ${CHROOT}/usr/local/lib:${CHROOT}/lib/x86_64-linux-gnu: ${CHROOT}/usr/lib/x86_64-linux-gnu
setenv PATH /home/jens/bin:${CHROOT}/usr/local/bin:${CHROOT}/usr/bin: ${CHROOT}/bin:${CHROOT}/usr/local/games:${CHROOT}/usr/games <---------------------->
Aber jeder Befehl wird mit "Segmentation fault" quitiert. Und damit ist bei mir das Ende der Fahnenstange erreicht.
Also. Wie bastelt ihr euch @work die benötigte Arbeitsumgebung zusammen.
Einen schönen Abend wünscht
Jens
PS: Die naheliegende Lösung "Frag doch den Admin" habe ich schon. Spätestens bei den von CentOS nicht lieferbaren Programmen zuckt er (verständlicherweise) nur die Schulter. Und bei "Frag doch den Admin nach dem root-Passwort" wurde ich ausgelacht?!
Hej Jens!
Wenn du viel Zeit totschlagen möchtest, könntest du dir die Sachen mit prefix=/home/.../ sowie statisch linken.
Wenn die Software essentiell ist könntest du deinen Brötchengeber vorrechnen, dass es billiger ist, wenn er auf deiner Kiste mal eben ein anderes root-PW setzt und dir in die Hand drückt (alternativ dir eine übrige Kiste zum freien Bespielen gibt).
Der Klassiker mit geneigtem Admin sind sudo-Rechte für genau den benötigten chroot.
Auf Dauer kommt man mit VMs bei solchen Sachen allerdings weiter (irgendwann will eine Anwendung eine Lib haben die einen neuen Kernel haben will).
Viele Grüße Fabian
Hallo,
ich habe schroot selbst noch nicht ausprobiert:
http://www.pro-linux.de/artikel/2/1547/3,installation.html
Viele Grüße Frank
Am Dienstag, den 03.04.2012, 19:51 +0200 schrieb Jens Weiße:
Hallo Leute,
von Euch hat doch bestimmt auch der ein oder andere das Problem, dass er unbedingt eine bestimmte Software benötigt, aber nicht die nötigen root- Rechte für die Installation hat.
Aufgabenstellung: Konkret will ich mir auf CentOS6.2 ein aktuelleres Python mit NumPy und SciPy installieren. Das Problem dabei ist, dass bei CentOS6.2 nur ein steinaltes NumPy dabei ist und SciPy vollkommen fehlt. Die Abhängigkeitsliste zum Bauen von SciPy ist länger als mein Arm. Das sind u.a. Bibliotheken für numerisches Zeug (ATLAS, BLAS, MKL, ...) dabei und das will man nicht selber bauen.
Lösungsansatz: Man nehme sich ein debootstrap und baue sich eine chroot-Umgebung mit debian-testing. Zu Hause mit Root-Rechten geht das auch wunderbar.
Problem: @work wollen die mir keine Root-Rechte zum Wechsel in die chroot-Umgebung geben. Und als normaler Nutzer kann man nicht "chrooten" :-/
Idee: Man setze die Umgebungsvariablen PATH und LD_LIBRARY_PATH auf die Pfade innerhalb der chroot-Umgebung. Hier für die tcsh:
<----------------------> setenv CHROOT "/data/debian_testing_chroot2"
setenv LD_LIBRARY_PATH ${CHROOT}/lib:${CHROOT}/lib64:${CHROOT}/usr/lib: ${CHROOT}/usr/local/lib:${CHROOT}/lib/x86_64-linux-gnu: ${CHROOT}/usr/lib/x86_64-linux-gnu
setenv PATH /home/jens/bin:${CHROOT}/usr/local/bin:${CHROOT}/usr/bin: ${CHROOT}/bin:${CHROOT}/usr/local/games:${CHROOT}/usr/games <---------------------->
Aber jeder Befehl wird mit "Segmentation fault" quitiert. Und damit ist bei mir das Ende der Fahnenstange erreicht.
Also. Wie bastelt ihr euch @work die benötigte Arbeitsumgebung zusammen.
Einen schönen Abend wünscht
Jens
PS: Die naheliegende Lösung "Frag doch den Admin" habe ich schon. Spätestens bei den von CentOS nicht lieferbaren Programmen zuckt er (verständlicherweise) nur die Schulter. Und bei "Frag doch den Admin nach dem root-Passwort" wurde ich ausgelacht?!
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
On Tue, Apr 03, 2012 at 07:51:26PM +0200, Jens Weiße wrote:
Hallo Leute,
von Euch hat doch bestimmt auch der ein oder andere das Problem, dass er unbedingt eine bestimmte Software benötigt, aber nicht die nötigen root- Rechte für die Installation hat.
Aufgabenstellung: Konkret will ich mir auf CentOS6.2 ein aktuelleres Python mit NumPy und SciPy installieren.
Kannst Du nicht 'einfach' alle benötigten deb-Pakete in ein lokales Verzeichnis entpacken und anschließend die entsprechenden Umgebungsvariablen setzten?
Friedrich
Jens Weiße wrote:
Hallo Leute,
von Euch hat doch bestimmt auch der ein oder andere das Problem, dass er unbedingt eine bestimmte Software benötigt, aber nicht die nötigen root- Rechte für die Installation hat.
Standardproblem. Standardlösung: fakeroot, fakechroot.
Siehe auch: http://linux.die.net/man/1/fakechroot Kommandozeile irgendwie in der Form: fakeroot fakechroot /usr/sbin/chroot /tmp/debian /bin/sh
Ciao, Thomas
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.
lug-dd@mailman.schlittermann.de