21.3 Ubuntu/Debian 兼容层
注意
由于 Port sysutils/debootstrap 长期未更新,经测试尚不支持 Ubuntu 24.04 和 Debian 13。
视频教程:06-FreeBSD-Ubuntu 兼容层脚本使用说明
Ubuntu 兼容层

以下教程在 14.2-RELEASE 测试通过。类似的方法可以构建 Debian 兼容层。更多其他系统请看 /usr/local/share/debootstrap/scripts/。
开始构建 Ubuntu 兼容层(基于 Ubuntu 22.04 LTS)
挂载文件系统
将 nullfs_load="YES" 写入 /boot/loader.conf。
将以下行写入 /etc/fstab:
检查挂载有无报错:
如果提示没有 home 文件夹,请新建之:
重启:
设定 Linux 内核版本
不进行这一步,在 Chroot 的时候,可能会提示 FATAL: kernel too old。6.16.2 这个随便改,你可以参考 The Linux Kernel Archives 这里面的数值进行填写。
进入 Ubuntu 兼容层
首先 chroot 进去 Ubuntu,移除会报错的软件:
Ubuntu 换源
在卸载 rsyslog 之后,换源,由于 SSL 证书没有更新,所以还不能用 https 源:
写入:
进入 Ubuntu 兼容层,开始更新系统,安装常用软件:
附录:Ubuntu 兼容层脚本(基于 Ubuntu 22.04 LTS,FreeBSD 14.3 RELEASE 测试通过)
脚本内容如下:
附录:Debian 12(bookworm)(FreeBSD 14.2 RELEASE 测试通过)
脚本内容如下:
附录:安装 Windows 11 字体(可选。自制包,打包同时兼容 debian、低版本 Ubuntu)
附录:运行 X11 软件
故障排除与未竟事宜
不知道程序的命令行启动命令是什么?
请按以下方法依次查找 (以 gedit 为例):
直接执行软件包名
# gedit;whereis 软件包名,定位后执行。whereis gedit;通过
find命令全局查找# find / —name 软件包名——# find / —name gedit。通过软件图标定位,找到路径
/usr/share/applications,根据软件包名找到软件,用文本编辑器(如ee、nano)打开。(软件图标本质上是一个文本文件,不是软连接或者图片),找到程序运行的命令复制到终端运行即可;
如何查找软件?
把 XXX 换成想要搜索的软件名即可。
缺失 .so 文件
首先看看缺失哪些 .so 文件,一般不会只缺失一个。
可以看到 libffmpeg.so => not found,缺“libffmpeg.so”。
安装工具
查看
libffmpeg.so属于哪个包:
可以看到多个包都提供了这个 so 文件,随便安装一个:
按照上述路径复制文件,并刷新 ldd 缓存:
查看:
systemd 与 wine
Systemd 不可用,但可以用 server xxx start。
导入过 https://github.com/zq1997/deepin-wine 源以安装 deepin-qq,deepin-wechat 等软件,但都提示 段错误。所有 Wine 程序都无法正常运行。如果你能解决这个问题,请提出 issue 或者 pull。
最后更新于
这有帮助吗?