RPM(Red Hat Package Manager)
- 定义:RPM 是一种软件包管理工具,主要用于基于 Red Hat 的 Linux 发行版(如 RHEL、CentOS、Fedora)安装、卸载、升级和查询软件包。
- 功能:
- 安装
.rpm
格式的软件包。 - 卸载已安装的软件包。
- 查询软件包信息(比如版本、文件列表等)。
- 验证软件包完整性和一致性。
- 安装
- 特点:
- 只处理单个软件包,不处理依赖关系。
- 需要用户自己解决依赖问题。
YUM(Yellowdog Updater Modified)
- 定义:YUM 是基于 RPM 的高级包管理工具,能自动处理软件包的依赖关系,简化软件安装和管理。
- 功能:
- 自动解决和安装依赖包。
- 从软件仓库(Repository)中下载安装软件。
- 支持安装、升级、卸载软件包。
- 支持仓库管理和搜索软件包。
- 特点:
- 依赖自动处理,用户操作更方便。
- 支持远程仓库,方便更新和安装。
- 比 rpm 更智能、易用。
RPM
使用 RPM 机制封装的软件包文件拥有约定俗成的命名格式。
一般使用“软件名-软件版 本 – 发 布 次 数 . 操 作 系 统 类 型 . 硬 件 架 构 类 型 .rpm” 的 文 件 名 形 式 , 如 “bash-4.2.46-20.el7_2.x86_64.rpm”。
其中硬件平台通常为“i386”或“i686”等,表示适用于 Intel 公司的处理器,“x86_64”表示适用于 64 位的系统,如果是“noarch”表示不区分硬件架 构(支持不同硬件体系的处理器)。
CentOS 的 DVD 安装光盘携带的大部分软件包都在 Packages 目录中,通过该目录中 的文件可以熟悉 RPM 软件包的一般命名格式。例如,以下操作用于查看 DVD 光盘设备中 携带的 bash 和 fontconfig-devel 软件包(分别是 Shell 解释器、字体配置和定制库)。一般 情 况 下 , CentOS 启 动 后 安 装 光 盘 会 自 动 挂 载 到 系 统 的 /run/media/root/CentOS\7\x86_64/Packages/目录下。
查看已经安装的信息
命令 | 作用描述 |
---|---|
rpm -q 软件名 | 查询指定软件是否已安装 |
`rpm -qi 软件名` | 显示已安装的指定软件的详细信息 |
rpm -ql 软件名 | 显示已安装的指定软件的文件列表 |
`rpm -qc 软件名` | 列出已安装的指定软件的配置文件 |
`rpm -qd 软件名` | 列出已安装的指定软件的软件包文档所在位置 |
rpm -qR 软件名 | 列出已安装的指定软件的依赖的软件包及文件 |
`rpm -qF 文件或目录` | 查询已安装的指定软件属于哪个安装包 |
`rpm -qa` | 显示当前系统中以 rpm 方式安装的所有软件列表 |
rpm -qa | grep -i postfix | 查询软件 postfix 是否已安装 |
rpm -qf 文件或目录 | 查看指定的文件或目录是哪个软件包所安装的 |
查询未安装的 RPM 软件包文件中信息
命令 | 作用描述 |
---|---|
rpm -qpi RPM包文件名 | 查询指定软件包的详细信息 |
rpm -qpl RPM包文件名 | 查询指定软件包的文件列表 |
rpm -qpc RPM包文件名 | 查询指定软件包的配置文件 |
rpm -qpd RPM包文件名 | 查询指定软件包的软件包文档的位置 |
安装、升级、卸载 RPM 软件包
格式和参数:
rpm [选项] RPM包文件
rpm -ivh RPM软件包
-i:安装一个新的 RPM 软件包。
-U:升级某个软件包,若未安装过,则进行安装。
-F:升级某个软件包,若未安装过,则放弃安装。
-h:在安装或升级软件包的过程中,以“#”号显示安装进度。
-v:显示软件安装过程中的详细信息。
–force:强制安装某个软件包,比如要安装版本更旧的软件包
-e:卸载指定名称的软件包。
–nodeps:在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系。

YUM
安装源代码软件包需要编译安装,需要安装支持c和c++程序语言的编译器,如gcc、gcc-c++、make
如果使用rpm方式安装,则需要先安装多个依赖包,这样会很繁琐。这里可以使用 yum方式进行一键安装。
自定义的yum的源,默认在/etc/yum.repos.d/
下面,可以自己建立新的repo来使得yum工作。
repo文件示例
新建文件/etc/yum.repos.d/local.repo
[local] #仓库类别
name=local #仓库名称
baseurl=file:///mnt #指定URL 访问路径为光盘挂载目录
enabled=1 #开启此yum源,此为默认项,可省略
gpgcheck=0 #不验证软件包的签名
新建源完成后,使用yum clean all && yum makecache
以删除yum缓存并更新
yum常用的操作命令
命令 | 作用描述 |
---|---|
yum -y install 软件名 | 安装、升级软件包,“-y”表示自动确认 |
yum -y remove 软件名 | 卸载软件包,可自动解决依赖关系 |
yum -y update 软件名 | 升级软件包 |
yum list | 查询软件包列表 |
yum list installed | 查询系统中已安装的软件包 |
yum list available | 查询仓库中尚未安装的软件包 |
yum list updates | 查询可以升级版本的软件包 |
yum info 软件名 | 查询软件包的描述信息 |
yum search [all] 关键词 | 根据关键词查找相关软件包 |
yum whatprovides 命令 | 查询命令属于哪个软件包 |
yum install 包名 -y --downloadonly --downloaddir=/tmp/ | 下载RPM包到指定目录 |
示范:使用yum安装一些开发工具

在线repo源
阿里云的 yum 源是国内很多 Linux 用户常用的镜像源之一,它速度快、稳定,适合用来替换默认的官方 yum 源,从而提高软件包下载和更新的速度。
备份当前的 yum 源配置:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载阿里云的 CentOS 7 yum 源配置文件:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
【可选】腾讯的软件源:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
清理缓存并重新生成缓存:yum clean all
yum makecache
自此,就可以直接使用在线仓库来管理系统的软件了。
源代码安装
源码安装是指通过下载软件的源代码文件(通常是 .tar.gz
、.tar.bz2
等压缩包),然后在本地编译生成可执行文件,再安装到系统中。
源码安装允许用户自定义编译选项、安装路径,甚至可以修正源码中的bug或应用补丁。
开发工具预装
yum install gcc* apr-devel* pkgconfig* libapr* pcre pcre-devel libtool libxml2-devel apr-util* -y
编译安装的基本过程:
1)tar 解包tar zxvf/jxvf xxx.tar.gz/xxx.tar.bz2 -C 目标路径
2)配置软件模块(安装路径、开启或关闭模块功能、管理服务进程的用户设定)./configure --prefix=目标路径(此软件安装到哪里去)
3)编译(将源代码转换为可执行的程序)make
4)安装make install
结语
RPM 是一种基于二进制包的低级软件管理工具,直接安装 .rpm
格式的软件包。它操作灵活,适合精确管理单个软件包,但它不会自动处理依赖关系,用户需要自行解决依赖问题。因此,rpm 适用于已经明确依赖关系且只需快速安装特定包的场景。
YUM 则是基于 RPM 之上的高级包管理器,能够自动解决软件包之间的依赖问题。它支持从远程仓库下载安装和升级软件包,使用起来更简单方便,特别适合日常的软件安装和系统更新管理。由于依赖仓库的可用性,yum 在灵活性上不如源码安装,但极大地提高了用户体验和效率。
源码安装 是从软件的源代码开始,经过编译和构建后安装到系统中。它允许用户根据需求自定义编译参数和安装路径,适合需要特定版本或特殊功能的软件,或者官方仓库中没有的包。源码安装虽然灵活强大,但过程复杂且耗时较长,依赖和卸载管理相对麻烦,更适合有一定技术背景的用户使用。