10.4.使用 debootstrap(8)open in new window 构建 Debian / Ubuntu 基本系统

另一种提供 Linux 共享库的方法是使用 sysutils/debootstrapopen in new window。这样做的好处是可以提供一个完整的 Debian 或 Ubuntu 分布。要使用它,请按照 FreeBSD Wiki上的说明。FreeBSD Wiki - Linux Jailsopen in new window

在 deboostrapping 之后,chroot(8)open in new window 进入新创建的目录,以里面的Linux发行版的典型方式安装软件,比如说。

# chroot /compat/ubuntu /bin/bash
[email protected]:/# apt update

可以把 debootstrap 放到 /compat/linux 中, 但不建议这样做, 以避免与从 FreeBSD 端口和软件包安装的文件发生冲突。取而代之的是,从发行版或版本名称中导出目录名称,例如,/compat/ubuntu。如果引导的实例旨在提供 Linux 共享库而不需要明确地使用 chroot 或 jails,可以通过更新 compat.linux.emul_path sysctl 并在 /etc/sysctl.conf 中加入这样一行来将内核指向它。

compat.linux.emul_path="/compat/ubuntu"

这个 sysctl 控制内核的路径转换机制;详情见linux(4)open in new window。请注意,改变它可能会给从 FreeBSD 软件包中安装的 Linux 应用程序带来麻烦;原因之一是许多这些应用程序仍然是32位的,而 Ubuntu 似乎正在取消对32位库的支持。