是否可以在 fakeroot 环境中运行 debootstrap?

是否可以在 fakeroot 环境中运行 debootstrap?

我有一个脚本,通过运行来准备安装映像debootstrap,对文件进行一些修改,然后将文件复制到由文件备份的磁盘映像。

这在 下工作root,但我希望能够在没有root特权的情况下运行脚本,因为它确实不需要任何特权资源。我以为我只需使用 运行整个脚本fakeroot,但debootstrap失败了

W: Failure trying to run: chroot /tmp/tmp..... mount -t proc proc /proc

有办法解决这个问题吗?

答案1

一般来说,是的,可以debootstrap通过 的方式以非 root 用户身份运行fakeroot,但还有更多细节。

您似乎遇到的直接问题是尝试chroot以非 root 用户身份使用;你需要使用fakechroot相反,除了fakeroot.例如:

fakechroot fakeroot debootstrap sid /tmp/sid

稍后您可能会遇到的问题包括以非 root 用户身份创建环回安装或创建磁盘映像分区表。

您可能会发现使用像这样的 debootstrap 变体更容易,而不是一一处理所有这些细节多带,如果有一天您最终想要的话,它还可以处理交叉编译(例如,从 x86-64 生成 armhf 图像)。

答案2

debootstrap 有一个选项--variant=fakechroot可以完全执行您想要执行的操作(请参阅文档)。

答案3

chroot(2)系统调用需要 root 权限,或者更准确地说和技术上的 CAP_SYS_CHROOT能力(请参阅能力(7))

因此你不能只使用fakeroot它(你还需要fakechrootETC)。

相关内容