创建 RPM 包
要创建 RPM 包,你需要安装 RPM 工具链。yum
提供了一个组来捆绑安装这些工具:
sudo dnf group install \'C Development Tools and Libraries\' \'RPM Development Tools\'
安装完这些之后,你必须从 ZFS Git 仓库中安装构建 ZFS 所需的所有包。这些包属于三个组:
-
鸿蒙官方战略合作共建——HarmonyOS技术社区
-
Autotools,用于从平台配置中生成构建文件。
-
用于构建 ZFS 内核和用户态工具的库。
-
构建 RPM 包的库。
sudo dnf install libtool autoconf automake gettext createrepo \\ libuuid-devel libblkid-devel openssl-devel libtirpc-devel \\ lz4-devel libzstd-devel zlib-devel \\ kernel-devel elfutils-libelf-devel \\ libaio-devel libattr-devel libudev-devel \\ python3-devel libffi-devel
现在你已经准备好创建你自己的包了。
构建 OpenZFS
OpenZFS 提供了优秀的基础设施。要构建它:
-
鸿蒙官方战略合作共建——HarmonyOS技术社区
-
用
git
克隆仓库,并切换到你希望使用的分支/标签。 -
运行 Autotools 生成一个 makefile。
-
运行
make rpm
,如果一切正常,RPM 文件将被放置在build
文件夹中。
$ git clone --branch=zfs-2.0.0-rc3 zfs$ cd zfs$ ./autogen.sh$ ./configure$ make rpm
建立一个 yum 仓库
在 yum
中,仓库是一个服务器或本地路径,包括元数据和 RPM 文件。用户设置一个 INI 配置文件,yum
命令会自动解析元数据并下载相应的软件包。
Fedora 提供了 createrepo
工具来设置 yum
仓库。首先,创建仓库,并将 ZFS 文件夹中的所有 RPM 文件复制到仓库中。然后运行 createrepo --update
将所有的包加入到元数据中。
$ sudo mkdir -p /var/lib/zfs.repo$ sudo createrepo /var/lib/zfs.repo$ sudo cp *.rpm /var/lib/zfs.repo/$ sudo createrepo --update /var/lib/zfs.repo
在 /etc/yum.repos.d
中创建一个新的配置文件来包含仓库路径:
$ echo \\\"[zfs-local]\\\\nname=ZFS Local\\\\nbaseurl=file:///var/lib/zfs.repo\\\\nenabled=1\\\\ngpgcheck=0\" |\\sudo tee /etc/yum.repos.d/zfs-local.repo $ sudo dnf --repo=zfs-local list available --refresh
终于完成了!你已经有了一个可以使用的 yum
仓库和 ZFS 包。现在你只需要安装它们。
$ sudo dnf install zfs$ sudo /sbin/modprobe zfs
运行 sudo zfs version
来查看你的用户态和内核工具的版本。恭喜!你拥有了 Fedora 中的 ZFS。