我正在使用Gentoo框,我想在不使用root帐户或sudo 的情况下创建基于Debian的chroot环境。
这似乎可以使用 fakeroot 和 fakechroot 等工具,但到目前为止,我还没有取得任何成功。以下是我用于Precise的命令:
fakeroot fakechroot /usr/sbin/debootstrap --variant=fakechroot precise ./precise http://archive.ubuntu.com/ubuntu/
总是失败并出现同样的错误:
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
debootstrap.log 的内容是:
dpkg: error while loading shared libraries: libselinux.so.1: cannot open shared object file: No such file or directory
我不知道为什么 SELinux 被吸引进来以及为什么它没有正确处理这种依赖。此外,我也试图建立Wheezy和Jessie。同样的错误。
发生了什么?版本:
debootstrap的-1.0.67
fakeroot的-1.19
fakechroot-2.17.2
内核3.19.6
答案 0 :(得分:1)
fakeroot和fakechroot不是问题所在。看起来像最初构建dpkg时使用的是libselinux.so.1。首先,尝试locate命令:
locate libselinux
没有版本。这应该1)确认它确实不存在,或2)确实存在,但不在$ LD_LIBRARY_PATH或默认库搜索路径中。
如果locate打开另一个版本,请使用ln -s命令创建指向您现有版本的符号链接(libselinux.so.1)。
要查看依赖项,请运行:
ldd `which dpkg`