rpm,yum和dnf
三个都是linux安装软件的工具
linux安装软件有三种方式

1.源码包安装
1. 绝大多数开源软件都是直接以原码形式发布的
2. 源代码一般会被打成.tar.gz的归档压缩文件
3. 源代码需要编译成为二进制形式之后才能够运行使用
4. 源代码基本编译流程:
1).configure 检查编译环境;
2)make对源代码进行编译;
3)make insall 将生成的可执行文件安装到当前计算机中

2.rpm安装
Red Hat推出的Package Manager,用rpm工具可以将二进制程序进行打包,这种包被称为rpm包,仅适用于安装用rpm来打包的软件。

3.yum(dnf)安装

在rpm出现之前都是使用编译源码包的方式安装软件,rpm目的是解决原始方式的安装、升级、依赖关系等问题,建立统一的数据库(数据库文件位于:/var/lib/rpm)记录各软件的信息并分析依赖关系。
命令选项
-i:表示安装。
-v, -vv, -vvv:表示详细信息。
-h:以"#"号显示安装进度。
-q:查询指定包名。
-e:卸载指定包名。
-U:升级软件,若未软件尚未安装,则安装软件。
-F:升级软件。
-V:对rpm包进行验证。
–nodeps:忽略依赖关系。
–query:查询指定包名。同-q选项。
–hash:同-h。
–install:表示安装,同-i选项。
–test:仅作测试,不真正执行,可用于测试安装,测试卸载。
–replacepkgs:重新安装。替换原有的安装。
–force:忽略软件包及文件的冲突。
–initdb:新建rpm的数据库。
–rebuilddb:重建rpm的数据库。
–percent:以百分比的形式输出安装的进度。
-p:对于未安装的包,可以和其他查询条件一起用

常用命令有
rpm -q:查询某一个rpm包是否已安装
rpm -qi:查询某一个rpm包的详细信息
rpm -qa:列出当前系统所有已安装的包
rpm -ivh filename.rpm 安装软件
rpm -Uvh filename.rpm 升级软件
rpm -e filename.rpm 卸载软件
rpm -qpi filename.rpm 查询软件描述信息
rpm -qpl filename.rpm 列出软件文件信息
rpm -qf filename 查询文件属于哪个rpm
rpm -qc 包名 查询包安装生成的配置文件

yum的出现是为了解决虽然rpm能分析,但是问题还是要运维人员解决,大型软件依赖非常复杂,安装软件还是很繁琐。yum可以分析出所需软件的依赖关系,自动从服务器下载并安装到系统。yum客户端基于rpm包进行管理,yum在安装rpm时,会从服务器下载相应包,且缓存在本地
常用命令有
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息

dnf是yum的进化版,使用习惯比如命令和yum保持了统一,上述命令可以直接把yum换成dnf使用