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 old6.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,根据软件包名找到软件,用文本编辑器(如 eenano)打开。(软件图标本质上是一个文本文件,不是软连接或者图片),找到程序运行的命令复制到终端运行即可;

如何查找软件?

把 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。

最后更新于

这有帮助吗?