天行健,君子以自强不息;地势坤,君子以厚德载物;

CentOS7中安装和使用DNF

DNF新一代的RPM软件包管理器。

DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。

DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。

DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF .

1.为了安装 DNF ,您必须先安装并启用 epel-release 依赖。

在系统中执行以下命令:

# yum install epel-release

2.使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。、

在系统中执行以下命令:

# yum install dnf

然后, DNF 包管理器就被成功的安装到你的系统中了。

查看 DNF 包管理器版本

用处:该命令用于查看安装在您系统中的 DNF 包管理器的版本

命令:

# dnf –version

如果有报错

~ $  dnf --version
4.0.9
Traceback (most recent call last):
  File "/usr/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 95, in _main
    cli.configure(list(map(ucd, args)), option_parser())
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 868, in configure
    self.base.output)
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 137, in print_versions
    sm_ui_time(pkg.installtime)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 4: ordinal not in range(128)

这是由于python2中的编码bug,需要在python目录/lib/python2.7/site-packages/中新建一个文件(系统pyhton目录:/usr/lib/python2.7/site-packages/):

sitecustomize.py,其中包含下列代码

import sys
sys.setdefaultencoding('utf-8')

然后验证一下

~ $  dnf --version
4.0.9
  已安装: dnf-0:4.0.9.2-1.el7_6.noarch 在 2020年05月28日 星期四 08时54分59秒
  构建    :CentOS BuildSystem <http://bugs.centos.org> 在 2019年02月13日 星期三 20时19分33秒

  已安装: rpm-0:4.11.3-35.el7.x86_64 在 2019年02月20日 星期三 04时14分24秒
  构建    :CentOS BuildSystem <http://bugs.centos.org> 在 2018年10月30日 星期二 19时27分14秒

完美~~~

点赞

发表评论