schroot 是否允许覆盖主目录中的配置文件?

schroot 是否允许覆盖主目录中的配置文件?

当 schroot 配置为挂载 /home 时,chroot 内部安装的软件包会覆盖 $HOME 中的配置文件吗?

例如,如果在 chroot 中安装了较新版本的 gconf2,它会覆盖 $HOME/.gconf 吗?有没有办法防止这种情况发生,同时保持对 /home 的访问?

答案1

当 /home 由 schroot 挂载时,所有配置文件都将放在基本安装的 $HOME 中,无论它们是否属于 schroot。

当安装一个包的两个版本(一个在基础安装中,另一个在 schroot 中)时,这会导致配置文件被覆盖。

可以轻松改变 schroot 设置,以便将其配置文件放在不同的目录中,如以下示例所示。

wheezy-amd64 的 schroot 位于 /var/schroot/wheezy-amd64。此特定 schroot 使用“桌面”配置文件,因此其挂载点在 /etc/schroot/desktop/fstab 中定义。

首先,在 schroot 中为用户创建一个主目录,

mkdir /var/schroot/wheezy-amd64/home/$USERNAME

其次,在 /etc/schroot/desktop/fstab 中替换以下行,

/home          /home           none    rw,bind         0       0

和,

/home          /HOME           none    rw,bind         0       0

就这样!在基本安装中向 ~/.bash_aliases 添加别名也很方便,

alias wheezy64='schroot -c wheezy-amd64 `/bin/echo "-d $PWD" | /bin/grep "^-d[ ]*\/home" | sed "s/home/HOME/"`'

在 schroot 内部,用户现在看到两个主目录:

  • /home/$USERNAME 是 schroot 主目录。
  • /HOME/$USERNAME 是基本安装的主目录。

相关内容