导读:在 Fedora 上使用 yum 仓库来获取最新的 ZFS 特性。
本文字数:2538,阅读时长大约:3分钟
https://linux.cn/article-12754-1.html
作者:Sheng Mao
译者:geekpi
我是一名 Fedora Linux 用户,我每天都会运行yum upgrade。虽然这个习惯使我能够运行所有最新的软件(Fedora 的四个基础之一的 “First” ,它也做到了),但它也会提醒ZFS存储平台和新内核之间的不兼容性。
作为一名开发者,有时我需要最新的 ZFS 分支的新特性。例如,ZFS 2.0.0 包含了一个令人兴奋的新功能,它大大提高了 ZVOL 同步性能,这对我这个 KVM 用户来说至关重要。但这意味着,如果我想使用 2.0.0 分支,我必须自己构建 ZFS。
起初,我只是在每次内核更新后从它的 Git 仓库中手动编译 ZFS。如果我忘记了,ZFS 就会在下次启动时无法被识别。幸运的是,我很快就学会了如何为 ZFS 设置动态内核模块支持 (DKMS)。然而,这个解决方案并不完美。首先,它没有利用强大的yum系统,而这个系统可以帮助解决依赖关系和升级。此外,使用yum在你自己的包和上游包之间进行切换是非常容易的。
在本文中,我将演示如何设置yum仓库来打包 ZFS。这个方案有两个步骤:
1. 从 ZFS 的 Git 仓库中创建 RPM 包。
2. 建立一个yum仓库来托管这些包。
创建 RPM 包
要创建 RPM 包,你需要安装 RPM 工具链。yum提供了一个组来捆绑安装这些工具:
安装完这些之后,你必须从 ZFS Git 仓库中安装构建 ZFS 所需的所有包。这些包属于三个组:
1.Autotools,用于从平台配置中生成构建文件。
2. 用于构建 ZFS 内核和用户态工具的库。
3. 构建 RPM 包的库。
现在你已经准备好创建你自己的包了。
构建 OpenZFS
OpenZFS
提供了优秀的基础设施。要构建它:
1. 用git克隆仓库,并切换到你希望使用的分支/标签。
2. 运行 Autotools 生成一个 makefile。
3. 运行make rpm,如果一切正常,RPM 文件将被放置在 文件夹中。
建立一个 yum 仓库
在yum中,仓库是一个服务器或本地路径,包括元数据和 RPM 文件。用户设置一个 INI 配置文件,yum命令会自动解析元数据并下载相应的软件包。
Fedora 提供了createrepo工具来设置yum仓库。首先,创建仓库,并将 ZFS 文件夹中的所有 RPM 文件复制到仓库中。然后运行createrepo --update将所有的包加入到元数据中。
在 中创建一个新的配置文件来包含仓库路径:
终于完成了!你已经有了一个可以使用的yum仓库和 ZFS 包。现在你只需要安装它们。
运行sudo zfs version来查看你的用户态和内核工具的版本。恭喜!你拥有了Fedora 中的 ZFS。
via:https://opensource.com/article/20/10/zfs-dnf
作者:Sheng Mao选题:lujun9972译者:geekpi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
领取专属 10元无门槛券
私享最新 技术干货