明天给伙伴们分享一下Linux软件管理-DNF软件包管理,希望看了有所收获。
我是公众号「想吃土豆」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习linux系统日志,后续会分享工作中用到的运维技术,在运维的路上得到支持和共同进步!
假如伙伴们看了文档认为有用,欢迎你们关注我的公众号,获取相关文档。爱运维linux卸载软件,爱生活。
DNF(DandifiedYum)是新一代的RPM软件包管理器。DNF包管理器克服了YUM包管理器的一些困局redflag linux,提高了包括用户体验,显存占用,依赖剖析,运行速率等多方面的内容。DNF使用RPM,libsolv和hawkey库进行包管理操作。AlmaLinux早已使用DNF作为默认的软件包管理器。
1、基本句型
dnf [选项] [参数] [软件名]
虽然在好多方面,dnf的使用方式,跟yum的使用方式还是很相像的。可以先暂时将dnf,理解为yum的另一个名称。
2、参数说明
选项说明
-y
对于dnf的“提问”默认回复”yes”
这应当是惟一一个最常用的参数了,在使用dnf进行管理软件的时侯linux卸载软件,dnf就会弹出一个确认信息,输入y或则n确认操作或则取消操作。这么-y参数就是给这个“提问”默认给了确认回答。
3、选项说明
选项说明
install
安装软件
update
更新软件
remove
卸载软件
listinstalled
显示已安装软件包信息
listavailable
显示可用的软件包信息
clean
清除过期的yum缓存
deplist
显示yum软件包的所有依赖
check-update
显示软件是否有更新
info
查看软件名详情
4、安装DNF
CentOS7没有预装DNF,须要先安装DNF。
[root@edenluo.com ~]# yum install epel-release
[root@edenluo.com ~]# yum install dnf
[root@edenluo.com ~]# dnf --version
1、使用问题
CentOS7安装DNF后,运行dnf–-version会报以下错误:
Traceback (most recent call last):File "/usr/bin/dnf", line 57, in from dnf.cli import mainFile "/usr/lib/python2.7/site-packages/dnf/__init__.py", line 30, in import dnf.baseFile "/usr/lib/python2.7/site-packages/dnf/base.py", line 29, in import libdnf.transactionFile "/usr/lib64/python2.7/site-packages/libdnf/__init__.py", line 3, in from . import confFile "/usr/lib64/python2.7/site-packages/libdnf/conf.py", line 17, in _conf = swig_import_helper()File "/usr/lib64/python2.7/site-packages/libdnf/conf.py", line 16, in swig_import_helperreturn importlib.import_module('_conf')File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module__import__(name)
ImportError: No module named _conf
虽然最主要的错误就是最后一条:ImportError:Nomodulenamed_conf
2、解决办法
[root@edenluo.com ~]# yum update python*
[root@edenluo.com ~]# yum install dnf-data dnf-plugins-core libdnf-devel libdnf python2-dnf-plugin-migrate dnf-automatic -y
[root@edenluo.com ~]# dnf --version
4.0.9Installed: dnf-0:4.0.9.2-1.el7_6.noarch at Fri 13 Nov 2020 05:40:22 AM ESTBuilt : CentOS BuildSystem at Wed 13 Feb 2019 08:19:33 PM ESTInstalled: rpm-0:4.11.3-45.el7.x86_64 at Fri 13 Nov 2020 06:10:31 AM ESTBuilt : CentOS BuildSystem at Wed 30 Sep 2020 05:30:03 PM EST
5、DNF工具实战
dnf在使用方面跟yum基本上是一致的。
# 安装 net-tools
[root@edenluo.com ~]# dnf install -y net-tools
# 卸载 net-tools
[root@edenluo.com ~]# dnf remove -y net-tools
# 软件升级
[root@edenluo.com ~]# dnf update
# 系统升级
[root@edenluo.com ~]# dnf upgrade
# 清除dnf软件包缓存
[root@edenluo.com ~]# dnf clean all
6、DNF源替换
由于AlmaLinux刚发布不久,还是挺热乎的,国外的软件源还不是好多。这儿以阿里的为反例演示一下替换过程。执行以下命令备份并替换默认源。
[root@edenluo.com ~]# sed -e 's|^mirrorlist=|#mirrorlist=|g'
-e 's|^# baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com|g'
-i.bak
/etc/yum.repos.d/almalinux*.repo
s|||g
[root@edenluo.com ~]# dnf makecache
8、DNF软件包管理实战
假如对伙伴们有帮助,谢谢关注支持「想吃土豆」「云原生运维实战派」后续会有更多实用的运维技术分享给伙伴们,您的关注就是我最大的成就。