当与fakeroot和fakechroot一起使用时,Gentoo + debootstrap失败

iva*_*rec 6 ubuntu debian chroot gentoo bootstrapper

我正在使用Gentoo框,我想在不使用root帐户或sudo的情况下创建基于Debian的chroot环境.

这似乎可以使用fakerootfakechroot等工具,但到目前为止我还没有取得任何成功.这是我用于Precise的命令:

fakeroot fakechroot /usr/sbin/debootstrap --variant=fakechroot precise ./precise http://archive.ubuntu.com/ubuntu/
Run Code Online (Sandbox Code Playgroud)

它始终失败并出现相同的错误:

I: Installing core packages...
W: Failure trying to run: chroot precise dpkg --force-depends --install /var/cache/apt/archives/base-passwd_3.5.24_amd64.deb
W: See precise/debootstrap/debootstrap.log for details
Run Code Online (Sandbox Code Playgroud)

debootstrap.log的内容是:

dpkg: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我不知道为什么SELinux被拉进来以及为什么它没有正确处理这种依赖.此外,我也试图建立Wheezy和Jessie.同样的错误.

这是怎么回事?版本:

debootstrap的-1.0.67

fakeroot的-1.19

fakechroot-2.17.2

内核3.19.6

don*_*edo 1

fakeroot 和 fakechroot 不是这里的问题。看起来最初构建 dpkg 时使用了 libselinux.so.1。首先,尝试定位命令:

locate libselinux
Run Code Online (Sandbox Code Playgroud)

没有版本。这应该 1) 确认它确实不存在,或者 2) 它确实存在,但不在您的 $LD_LIBRARY_PATH 或默认库搜索路径中。

如果找到另一个版本,请使用 ln -s 命令创建指向您现有版本的符号链接 (libselinux.so.1)。

要查看依赖关系,请运行:

ldd `which dpkg`
Run Code Online (Sandbox Code Playgroud)