【CentOS 8】爱Yum的DNF迁移课程
目录
你好。
我是Mandai,负责Wild 开发团队。
不久前,CentOS 8 发布了。
Beyond Co., Ltd.一般是一家MSP公司(我们也有MSP以外的业务!请参阅Beyond的服务指南|Beyond Co., Ltd. 。
这次我就来说说如果你使用了CentOS,你就不再需要大家都用的yum命令了。
yum 命令将被弃用
如果您熟悉这一点,您可能会想,“终于”,但是 yum 命令将停止使用。
如果您担心如何管理包裹,请不要担心。
有一个适当的后继包管理系统!
它的后继工具是dnf。
有些人可能没有听说过dnf。
然而,让我告诉你,它不是一个现成的工具。
dnf 是一个包管理系统,在同一个 Redhat 兼容发行版 Fedora 中使用,并且也被引入到 CentOS 中。
你为什么改变它?
由于yum是基于Python 2的,所以存在一个不能无限期使用的问题。
由于dnf运行在Python 3上,因此CentOS 8中系统使用的Python版本也增加到了Python 3。
操作系统安装完后,只安装了系统使用的Python,称为platform-python,所以看来用户使用的Python需要重新安装。
我想了解 dnf 命令,所以我尝试使用 dnf 来使用我经常与 yum 一起使用的命令。
我尝试使用 dnf 命令来执行包管理中经常完成的过程。
查看包列表
搜索包时,我总是使用 yum list | grep [包名称]。
当你用 dnf 运行 yum list 时会发生什么?
dnf 列表
只是百胜的名字变了。
顺便说一下,如果你想查看已安装的软件包列表,
dnf列表已安装
你可以检查一下。
安装包
那么如果我们想安装一个包怎么办?
使用 dnf 运行 yum install 时会发生什么?
dnf安装[包名]
在这里,yum 也刚刚变成了 dnf。
卸载软件包
您可能是时候了解这一点了,但是当您使用 dnf 运行 yum remove 时会发生什么?
dnf 删除 [包名]
我开始明白基本用法并没有那么不同!
我想使用 epel 存储库
使用 epel 存储库怎么样?
要安装 epel 存储库,请使用以下命令进行安装:
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # 或 dnf install epel-release
至于写入存储库设置的 epel.repo 文件,根据到目前为止的流程,似乎 /etc 下有一个 dnf 的目录。
ls -al /etc/dnf 总计 16 drwxr-xr-x.8 root root 128 Nov 17 05:03 80 root root 8192 Nov 25 01:18 .. drwxr-xr-x. root 6 May 13 2019 aliases.d -rw-r--r--. 1 root root 82 May 13 2019 dnf.conf drwxr-xr-x. 2 root root 59 Nov 25 01:18 module.d drwxr-xr- x.2 root root 6 May 13 2019 module.defaults.d drwxr-xr-x。3 root root 89 Nov 17 05:04 插件 drwxr-xr-x 2 root root 59 Nov 17 05:04 protected.d drwxr- xr-x.2 根 17 十一月 37 日 05:03 变量
是的?我没有看到任何像 repos.d 这样的目录。
应该是这样。
令人惊讶的是,repo 文件的目录仍然是 /etc/yum.repos.d。
真令人困惑!
ls -al /etc/yum.repos.d/ 总计 84 drwxr-xr-x。2 root root 4096 Nov 17 05:15 80 root root 8192 Nov 25 01:18 .. -rw- r--r--。1 根根 731 11 月 17 日 05:15 CentOS-AppStream.repo -rw-r--r--。1 根根 712 11 月 17 日 05:15 CentOS-Base.repo -rw-r--。 -r--.1 root 798 11 月 17 日 05:15 CentOS-centosplus.repo -rw-r--r--.1 根 root 1357 11 月 17 日 05:08 CentOS-CR.repo -rw-r--r --.1 root root 668 Aug 14 06:42 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 756 Nov 17 05:15 CentOS-Extras.repo -rw-r--r--。 1 根根 356 11 月 17 日 05:08 CentOS-fasttrack.repo -rw-r--r--。 1 根根 976 11 月 17 日 05:08 CentOS-Media.repo -rw-r--r--。 root root 736 11 月 17 日 05:15 CentOS-PowerTools.repo -rw-r--r--。 1 root root 1382 8 月 14 日 06:42 CentOS-Sources.repo -rw-r--r--。 78 十一月 17 05:08 CentOS-Vault.repo -rw-r--r--. 1 根根 1400 十一月 17 05:08 epel-playground.repo -rw-r--r--. 1 根根 1249 十月10 16:15 epel-playground.repo.rpmnew -rw-r--r--. 1 根根 1206 十一月 17 05:15 epel.repo -rw-r--r--. 1 根根 1104 十月 10 16 :15 epel.repo.rpmnew -rw-r--r--。1根根1354年11月17日05:08 epel-testing.repo -rw-r--r--。1根根1203年10月10日16:15 epel-testing.repo.rpmnew
我能够找到 repo 文件。
该文件的内容看起来与以前相同。
顺便说一句,当使用命令指定启用/禁用存储库时, --enablerepo / --disablerepo 选项的用法似乎与 yum 相同。
PHPer 喜欢的 remi 存储库(或者我认为是这样)可以在安装 epel 存储库后使用以下命令进行安装。
dnf 安装 https://rpms.remirepo.net/enterprise/remi-release-8.rpm
正如remi存储库站点上所写,安装方法似乎与yum略有不同。
dnf 中添加了模块的概念,只需指定 PHP,即可安装 php-cli、php-common、php-fpm、php-json、php-mbstring、php-xml 等基本包。
对于我们这些生活在多字节区域的人来说这是常识,但令人有点惊讶的是现在默认安装了 php-mbstring。
引入这个模块的好处是替换多个版本的包变得更加容易。
dnf 模块重置 php:remi-7.3 dnf 模块安装 php:remi-7.2
如果你这样做,版本会很快改变。
您可能不会每天使用它,但了解它可能会在您遇到困难时派上用场。
另外,在CentOS8 AppStream存储库中注册的PHP版本已更新到7.2,因此似乎不会经常使用它。
不过,PHP7.2的安全更新要到2020年11月末才进行,因此存在一些情况导致无法长期使用。
概括
这次,我们介绍了一个名为 dnf 的包管理工具,它首先安装在 CentOS 8 中。
我的印象大致和yum一样,如果能降低大家阅读的心理障碍我会很高兴。
我记得当 systemd 来到 CentOS 7 时我感到恐惧,但 dnf 很好而且很容易上手。
最后一点:yum 不会很快消失;yum 命令在 CentOS 8 上仍然有效。
然而,CentOS 8 中的 yum 就像 dnf 的包装命令,即使在 /usr/bin/yum 中,它也只处理键盘输入并调用 dnf 模块。
既然情况已经如此,毫无疑问 yum 命令将在不久的将来消失。
那时,我想写一篇文章来纪念那些已经从这个世界上消失的包管理系统。
就是这样。