使用Fedora上的yum存储库获取最新的ZFS功能。我是FedoraLinux用户,我每天都运行yumupgrade。虽然这个习惯让我可以运行所有最新的软件(“First”,Fedora的四大基础之一,它也是如此),但它也提醒我ZFS存储平台和更新内核之间的不兼容性。作为一名开发人员,有时我需要来自最新ZFS分支的新功能。例如,ZFS2.0.0包含一个令人兴奋的新功能,它大大提高了ZVOL同步性能,这对我作为KVM用户来说至关重要。但这意味着,如果我想使用2.0.0分支,我必须自己构建ZFS。起初,我只是在每次内核更新后从其Git存储库中手动编译ZFS。如果我忘记了,下次启动时将无法识别ZFS。幸运的是,我很快学会了如何为ZFS设置动态内核模块支持(DKMS)。然而,这个解决方案并不完美。首先,它没有利用强大的yum系统来帮助解决依赖关系和升级。此外,使用yum在您自己的包和上游包之间切换非常容易。在本文中,我将演示如何设置yum存储库来打包ZFS。该解决方案有两个步骤:从ZFSGit存储库创建一个RPM包。设置一个yum存储库来托管这些包。创建RPM包要创建RPM包,您需要安装RPM工具链。yum提供了一个组来捆绑安装这些工具:sudodnfgroupinstall'CDevelopmentToolsandLibraries''RPMDevelopmentTools'安装这些之后,您必须安装从ZFSGit存储库构建ZFS所需的所有包。这些包属于三个组:Autotools,用于从平台配置生成构建文件。用于构建ZFS内核和用户空间工具的库。用于构建RPM包的存储库。sudodnfinstalllibtoolautoconfautomakegettextcreaterepo\libuuid-devellibblkid-developenssl-devellibtirpc-devel\lz4-devellibzstd-develzlib-devel\kernel-develelfutils-libelf-devel\libaio-devellibattr-devellibudev\python3-devellibffi-devel现在您已准备好创建自己的包。构建OpenZFSOpenZFS提供了一个优秀的基础设施。要构建它:使用git克隆存储库,然后切换到您希望使用的分支/标签。运行Autotools以生成makefile。运行makerpm,如果一切正常,RPM文件将放在build文件夹中。$gitclone--branch=zfs-2.0.0-rc3
