我想使用bindfs(或任何可行的替代方案)来解决以下问题:
我有一个本地文件夹,其中包含我正在处理的 Maven 项目。但是我只能在 chroot 环境中构建(虚拟化太慢)。但由于这是一个开发环境,因此无法使用 IDE(具有用户权限)编辑挂载绑定文件夹中的文件(这就是我目前将其提供给 chroot env 的方式),这将是一个大问题。
我认为 bindfs 可能会有所帮助,但我不知道如何。
编辑:
澄清一下:我尝试过(作为root)
mount -o bind /path/to/my/project /path/to/chroot/mountpoint
和
bindfs -u myuser -g users -p +rw /path/to/project /path/to/chroot/mountpoint
答案1
在 chroot 中提供额外的目录树是绑定挂载的典型用例。就您而言,在主系统和开发环境中拥有相同的主目录可能是有意义的。如果您具有 root 访问权限并且使用的是 Linux,则可以使用 Linux 绑定挂载:
mount --bind /home /path/to/development/environment/home
chroot /path/to/development/environment
绑定挂载比bindfs更快,因为bindfs是一个额外的层,而绑定挂载相当于原始层——它的作用与硬链接对文件的作用相同。
您可能希望使用施鲁特。这是在 chroot 中创建工作系统的一点自动化;它自动化的事情之一是绑定安装。它最初是为您现在正在做的事情而开发的:在 Debian 系统上建立一个干净的开发环境。
看什么是绑定安装?有关绑定安装的更多信息,尤其是“在监狱中安装”和“运行不同的发行版”部分。