在 schroot 中安装东西

在 schroot 中安装东西

我有一个关于 chroot 的问题:假设我有一个程序被编译并构建到一个根文件树结构中,例如:

.
├── bin
│   └── software
├── etc
...

也就是说,要安装它,我必须将其与根 (/) 合并。现在,我已将其 rsynced 到 chroot 中,但当我尝试运行它时,我收到错误代码 127(没有这样的文件)。我还需要做什么吗?

答案1

如果我正确理解了你写的内容,我认为你不太了解 chroot 的作用。如果我有一个目录 /mytemproot 并在其上挂载了一个包含目录的文件系统:bin、etc、sbin、foo,那么我可以:

% cd /mytemproot
% pwd
/mytemproot
% chroot /mytemproot
% pwd
/
% ls /
bin etc sbin foo

chroot 的作用是将您置于一个 shell 中,其中 /mytemproot 被视为 /。真实的 / 对您来说是不可见的,真实的 / 下的所有其他文件系统也是如此。它不会合并文件系统。

在过去,当低级系统管理员习惯从头开始构建每个新的 UNIX 发行版时,我们会创建一个新的磁盘分区,在该分区上放置一个文件系统,然后在其中进行构建和安装。然后,我们会将该文件系统挂载到某个地方,chroot 到它并检查所有内容,然后再将其发布给用户。我想,今天的开发人员也会以同样的方式使用它。

相关内容