Faking a Linux environment without chroot

Posted by Pascal on Super User See other posts from Super User or by Pascal
Published on 2012-12-10T21:48:29Z Indexed on 2012/12/10 23:07 UTC
Read the original article Hit count: 232

Filed under:
|
|
|

For a university project I want to test a C++11 program on a 32-core machine. Unfortunately the machine has Ubuntu 12.04 with GCC 4.6 installed (we need GCC 4.7 because of some C++11 threading features). In such an environment I would normally run a chroot with a custom linux (say a debootstrap with Ubuntu 12.10). Since we don't get root access on the machine we can't use chroot.

So far I have prepared a run-time environment using debootstrap for our code, I compiled it in the debootstrap environemnt. Then copied it onto the server (using rsync). In order to run our C++ code I set the LD_LIBRARY_PATH to

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

and so far our code seems to run. I'm however stuck with our python code. It doesn't seem to be sufficient to set the paths manually.

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

Executing our script results in

ImportError: No module named _path

Is there an easier way to accomplish a "fake"-chroot than just overriding and creating environment variables?

Note I need python since we created a custom C++-Python module in order to run our tests. Maybe I should create two questions from this.

© Super User or respective owner

Related posts about linux

Related posts about bash