/usr/bin/env: python3.3: 在chroot中没有这样的文件或目录
chroot --userspec 1000:1000 /var/lib/broot/sugar-build-3xlQJ /usr/bin/env -i
PATH=/bin: /usr/bin:/usr/sbin BROOT=yes XAUTHORITY=/home/broot/.Xauthority
DISPLAY=:0 HOME=/home/broot LANG=C TERM=xterm-256color
/bin/bash -lc "/home/broot/sugar-build/osbuild build"
有没有人能解释一下上面的命令,因为错误似乎只出现在这里。我知道chroot基本上是干什么的,所以问题似乎是python3.3模块不在chroot监狱里。如果这是问题的话,我该怎么把python3.3模块放进chroot监狱呢?顺便说一下,我正在把一些模块从python2.7移植到python3.3,上面的命令就是这些模块中的,之前在python2.7中是可以正常工作的。
1 个回答
0
当你创建一个chroot环境时,你需要的所有东西都必须从你的系统中复制过来。
假设你的chroot环境放在/var/chroot目录下。
再假设你想要能够运行“ls”这个命令(如果你不需要这个功能,就不必复制它,但我们假设你需要)。首先,你得把/bin/ls复制到/var/chroot/bin/ls。
现在,“/bin/ls”这个命令运行时需要一些库文件。
假设你发现其中一个库文件叫做/lib64/libcap.so。这就意味着你需要把/lib/libcap.so复制到/var/chroot/lib64/libcap.so,否则你的/var/chroot/bin/ls就无法运行。
你需要为“ls”所需的所有库文件都做同样的操作。
完成这些步骤后,你就可以切换到/var/chroot环境,哇,你的“ls”命令现在可以运行了。
其他命令也是这个道理,无论是像“ls”这样的系统命令,还是像python这样的编译器/解释器。