/usr/bin/env: python3.3: 在chroot中没有这样的文件或目录

0 投票
1 回答
1899 浏览
提问于 2025-04-18 10:26
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这样的编译器/解释器。

撰写回答