diff --git a/translated/tech/20201016 Set up ZFS on Linux with yum.md b/translated/tech/20201016 Set up ZFS on Linux with yum.md index cb61d4dc55..860b8c7f0d 100644 --- a/translated/tech/20201016 Set up ZFS on Linux with yum.md +++ b/translated/tech/20201016 Set up ZFS on Linux with yum.md @@ -1,6 +1,6 @@ [#]: collector: (lujun9972) [#]: translator: (geekpi) -[#]: reviewer: ( ) +[#]: reviewer: (wxy) [#]: publisher: ( ) [#]: url: ( ) [#]: subject: (Set up ZFS on Linux with yum) @@ -9,29 +9,28 @@ 在 Linux 上使用 yum 设置 ZFS ====== -在 Fedora 上使用 yum 仓库里来使用最新的 ZFS 特性。 -![Puzzle pieces coming together to form a computer screen][1] -我是一名 Fedora Linux 用户,我每天都会运行 `yum upgrade`。虽然这个习惯使我能够运行所有最新的软件([Fedora 的四个基础][2]之一的 “First” (第一),它也做到了),但它也会提醒 [ZFS][3] 存储平台和新内核之间的任何不兼容。 +> 在 Fedora 上使用 yum 仓库来获取最新的 ZFS 特性。 + +![](https://img.linux.net.cn/data/attachment/album/202010/26/103028g9q3v3e391c9b62v.jpg) + +我是一名 Fedora Linux 用户,我每天都会运行 `yum upgrade`。虽然这个习惯使我能够运行所有最新的软件([Fedora 的四个基础][2]之一的 “First” ,它也做到了),但它也会提醒 [ZFS][3] 存储平台和新内核之间的不兼容性。 作为一名开发者,有时我需要最新的 ZFS 分支的新特性。例如,ZFS 2.0.0 包含了一个令人兴奋的新功能,它大大[提高了 ZVOL 同步性能][4],这对我这个 KVM 用户来说至关重要。但这意味着,如果我想使用 2.0.0 分支,我必须自己构建 ZFS。 -起初,我只是在每次内核更新后从它的 Git 仓库中手动编译 ZFS。如果我忘记了,ZFS 就会在下次启动时无法被识别。幸运的是,我很快就学会了如何为 ZFS 设置动态内核模块支持 ([DKMS][5])。然而,这个解决方案并不完美。首先,它没有利用强大的 [yum][6] 系统,而这个系统可以帮助解决依赖关系和升级。此外,使用 yum 在你自己的包和上游包之间进行切换是非常容易的。 +起初,我只是在每次内核更新后从它的 Git 仓库中手动编译 ZFS。如果我忘记了,ZFS 就会在下次启动时无法被识别。幸运的是,我很快就学会了如何为 ZFS 设置动态内核模块支持 ([DKMS][5])。然而,这个解决方案并不完美。首先,它没有利用强大的 [yum][6] 系统,而这个系统可以帮助解决依赖关系和升级。此外,使用 `yum` 在你自己的包和上游包之间进行切换是非常容易的。 -在本文中,我将演示如何设置 yum 仓库来打包 ZFS。这个方案有两个步骤: +在本文中,我将演示如何设置 `yum` 仓库来打包 ZFS。这个方案有两个步骤: 1. 从 ZFS 的 Git 仓库中创建 RPM 包。 - 2. 建立一个 yum 仓库来托管这些包。 - - + 2. 建立一个 `yum` 仓库来托管这些包。 ### 创建 RPM 包 -要创建 RPM 包,你需要安装 RPM 工具链。yum 提供了组来捆绑安装工具: - +要创建 RPM 包,你需要安装 RPM 工具链。`yum` 提供了一个组来捆绑安装这些工具: ``` -`sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools'` +sudo dnf group install 'C Development Tools and Libraries' 'RPM Development Tools' ``` 安装完这些之后,你必须从 ZFS Git 仓库中安装构建 ZFS 所需的所有包。这些包属于三个组: @@ -40,9 +39,6 @@ 2. 用于构建 ZFS 内核和用户态工具的库。 3. 构建 RPM 包的库。 - - - ``` sudo dnf install libtool autoconf automake gettext createrepo \     libuuid-devel libblkid-devel openssl-devel libtirpc-devel \ @@ -60,10 +56,7 @@ sudo dnf install libtool autoconf automake gettext createrepo \ 1. 用 `git` 克隆仓库,并切换到你希望使用的分支/标签。 2. 运行 Autotools 生成一个 makefile。 - 3. 运行 `make rpm`,如果一切正常,RPM 文件将被放置在构建文件夹中。 - - - + 3. 运行 `make rpm`,如果一切正常,RPM 文件将被放置在 `build` 文件夹中。 ``` $ git clone --branch=zfs-2.0.0-rc3 zfs @@ -75,10 +68,9 @@ $ make rpm ### 建立一个 yum 仓库 -在 yum 中,仓库是一个服务器或本地路径,包括元数据和 RPM 文件。用户设置一个 INI 配置文件,`yum` 命令会自动解析元数据并下载相应的软件包。 - -Fedora 提供了 `createrepo` 工具来设置 yum 仓库。首先,创建仓库,并将 ZFS 文件夹中的所有 RPM 文件复制到仓库中。然后运行 `createrepo --update` 将所有的包加入到元数据中。 +在 `yum` 中,仓库是一个服务器或本地路径,包括元数据和 RPM 文件。用户设置一个 INI 配置文件,`yum` 命令会自动解析元数据并下载相应的软件包。 +Fedora 提供了 `createrepo` 工具来设置 `yum` 仓库。首先,创建仓库,并将 ZFS 文件夹中的所有 RPM 文件复制到仓库中。然后运行 `createrepo --update` 将所有的包加入到元数据中。 ``` $ sudo mkdir -p /var/lib/zfs.repo @@ -89,17 +81,15 @@ $ 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" |\ +"[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 包。现在你只需要安装它们。 - +终于完成了!你已经有了一个可以使用的 `yum` 仓库和 ZFS 包。现在你只需要安装它们。 ``` $ sudo dnf install zfs @@ -115,7 +105,7 @@ via: https://opensource.com/article/20/10/zfs-dnf 作者:[Sheng Mao][a] 选题:[lujun9972][b] 译者:[geekpi](https://github.com/geekpi) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出