21.2 通过 FreeBSD Ports 安装 Rocky Linux 兼容层

Rocky Linux 版本号概述

截至 2026 年 2 月 16 日,FreeBSD Ports 的 emulators/linux-rl9arrow-up-right(其实际对应的基础包为 emulators/linux_base-rl9arrow-up-right)基于 Rocky Linux 9.7 发行版构建。

在 Rocky Linux 兼容层环境中查看当前 Linux 发行版的版本信息:

bash-5.1$ cat /etc/redhat-release      # Rocky Linux 兼容层内
Rocky Linux release 9.7 (Blue Onyx)

需要特别指出的是,该版本号仅具有参考意义,而非绝对的版本标识。其原因在于:文件 /etc/redhat-release 实际上是由 Rocky Linux 软件包 rocky-release 提供的静态文本文件。由于 Linux 发行版在本质上是由多个独立软件包组合而成的集合体,单个软件包的版本信息无法决定发行版中所有软件包的版本均归属某一特定版本。从更严格的意义上讲,Linux 发行版的版本号是一个相对概念,而非绝对标识。

观察提交 emulators/linux_base-rl9: update to Rocky Linux 9.7 (+)arrow-up-right,可以发现,真正决定了版本号的是 Ports 框架中的 Mk/Uses/linux.mkarrow-up-right‎ 文件中的 LINUX_DIST_VER 变量的值:

.  if empty(linux_ARGS)
.    if exists(${LINUXBASE}/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7)  # 检查兼容层内是否存在文件 RPM-GPG-KEY-CentOS-7,若有则为 CentOS 7 兼容层
linux_ARGS=		c7
.    elif exists(${LINUXBASE}/etc/pki/rpm-gpg/RPM-GPG-KEY-Rocky-9) # 检查兼容层内是否存在文件 RPM-GPG-KEY-Rocky-9,若有则为 Rocky Linux 9 兼容层
linux_ARGS=		rl9
.    else
linux_ARGS=		${LINUX_DEFAULT}
.    endif
.  endif

.  if ${linux_ARGS} == c7  # 检查是不是 CentOS 7 兼容层
LINUX_DIST_VER?=	7.9.2009    # 当前引入的是 CentOS 7.9.2009
.  elif ${linux_ARGS} == rl9   # 检查是不是 Rocky Linux 9 兼容层
LINUX_DIST_VER?=	9.7  # 当前引入的是 Rocky Linux 9.7
.  else
ERROR+=			"Invalid Linux distribution: ${linux_ARGS}"  # 如果都不是则直接打印报错信息
.  endif

启用 Linux 兼容层服务

在安装 Rocky Linux 兼容层之前,需要先启用 Linux 兼容层服务。

安装基本系统

安装 Rocky Linux 兼容层基本系统有两种方法,一种是使用 pkg 安装,另一种是使用 Ports 安装。

  • 使用 pkg 安装:

  • 或者使用 Ports 安装:

配置相关服务

安装完成后,还需要配置一些相关服务,以确保 Rocky Linux 兼容层能够正常工作。

无需配置 /etc/fstablinux_mounts_enable 会自动运行。

重启后生效。

最后更新于