Linuxulator 快速起步
FreeBSD提供了Linux二进制程序兼容,也就是 Linuxulator ,可以在FreeBSD上直接运行无需修改的Linux二进制程序。
要激活 Linuxulator ,执行以下命令:
Linuxulatorkldload linux
kldload linux64
要使配置持久化,则修改
/etc/rc.conf添加:
/etc/rc.conf 持久化激活 Linuxulatorlinux_enable="YES"
安装Rocky Linux 9 userland:
pkg install linux_base-rl9
备注
根据handbook说明, Linux userlands 当前推荐采用 Rocky Linux 9 userland
以前的 CentOS 7 不建议采用 (废弃) 执行以下命令在系统中安装CentOS 7软件包源的Linux子系统 :
pkg install linux_base-c7
如果已经安装过旧版本 linux_base-c7 可以先移除,然后再安装 linux_base-rl9 ( Rocky Linux 9 userland ):
pkg remove linux_base-c7
根据安装提示,还需要在 /etc/fstab 中添加以下挂载配置:
linprocfs /compat/linux/proc linprocfs rw 0 0
linsysfs /compat/linux/sys linsysfs rw 0 0
tmpfs /compat/linux/dev/shm tmpfs rw, mode=1777 0 0
然后执行以下命令挂载上述兼容文件系统:
mount /compat/linux/proc
mount /compat/linux/sys
mount /compat/linux/dev/shm
当然,也可以重启系统生效
升级 Rocky Linux 9 userland :
# 通过chroot进入Rocky Linux环境
chroot /compat/linux /bin/bash
# 更新dnf缓存
dnf update -y
# 升级
dnf upgrade -y
警告
默认 linux_base-rl9 是 minimal 版本,没有提供 DNF包管理器 。所以需要通过 使用 Rocky-Container-base tgz 包部署Linuxulator userland 来构建一个更完整系统才能执行本段更新
备注
这里有一个问题,我在FreeBSD 15上实践 linuxulator ,发现 linux_base-rl9 没有包含 DNF包管理器 ,似乎是一个不完整的环境。难道需要像 使用 ubuntu-base tgz 包部署Linux Jail Ubuntu 一样用官方的 core.txz 包来构建基础环境?
Rocky Linux download > 9 > images > x86_64 提供了 Rocky-9-Container-Minimal.latest.x86_64.tar.xz ,虽然是针对 Container 的镜像压缩包,但是jail非常类似container,实际上都剥离了 Systemd进程管理器 ,应该可以共用
另外 Rocky Linux 9 minimal jail working, need to figure out the next steps 提到了通过 podman 保存镜像 tar.gz 文件也是一个思路,实际上和 无需Docker Registry传输Docker镜像 中 docker save 是异曲同工。
(可选)安装Python 3
dnf install python3 -y
(可选)安装开发工具(对于很多python包需要)
dnf groupinstall "Development Tools" -y
(可选)安装pip for Python 3
dnf install python3-pip -y