W przypadku projektu uniwersyteckiego chcę przetestować program C ++ 11 na maszynie 32-rdzeniowej. Niestety maszyna ma Ubuntu 12.04 z zainstalowanym GCC 4.6 (potrzebujemy GCC 4.7 ze względu na niektóre funkcje wątków w C ++ 11). W takim środowisku normalnie uruchamiałbym chroota z niestandardowym linuksem (powiedzmy debootstrap z Ubuntu 12.10). Ponieważ nie mamy dostępu do roota na komputerze, nie możemy używać chroot.
Do tej pory przygotowałem środowisko uruchomieniowe za pomocą debootstrap dla naszego kodu, skompilowałem je w środowisku debootstrap. Następnie skopiowałem go na serwer (używając rsync). Aby uruchomić nasz kod C ++, ustawiam LD_LIBRARY_PATH na
export LD_LIBRARY_PATH=~/debootstrap/usr/lib/:~/debootstrap/lib64/:~/debootstrap/usr/lib/x86_64-linux-gnu/:~/debootstrap/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
i do tej pory nasz kod wydaje się działać. Jednak utknąłem z naszym kodem python. Ręczne ustawianie ścieżek nie wydaje się wystarczające.
export PYTHONPATH=~/debootstrap/usr/lib/python2.7/dist-packages:~/debootstrap/usr/lib/python2.7:~/debootstrap/usr/lib/python2.7/plat-linux2:~/debootstrap/usr/lib/python2.7/lib-tk:~/debootstrap/usr/lib/python2.7/lib-dynload:~/debootstrap/usr/local/lib/python2.7/dist-packages:~/debootstrap/usr/lib/pymodules/python2.7:~/debootstrap/usr/lib/python2.7/dist-packages/PIL:~/debootstrap/usr/lib/python2.7/dist-packages/gtk-2.0:~/debootstrap/usr/lib/python2.7
Wykonanie naszego skryptu powoduje
ImportError: No module named _path
Czy istnieje łatwiejszy sposób na uzyskanie „fałszywego” chroota niż po prostu nadpisywanie i tworzenie zmiennych środowiskowych?
Uwaga: Potrzebuję Pythona, ponieważ stworzyliśmy niestandardowy moduł C ++ - Python w celu uruchomienia naszych testów. Może powinienem z tego stworzyć dwa pytania.
źródło
chroot
Underfakeroot-ng
...