千家信息网

CentOS程序包管理器之rpm前端管理器

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,CentOS的程序包管理器:首先,我们要来了解一下程序包(源代码包)的命名规则:software_name-VERSION.tar.gzVERSION:major.minor.releasemajor
千家信息网最后更新 2026年11月02日CentOS程序包管理器之rpm前端管理器

CentOS的程序包管理器:

首先,我们要来了解一下程序包(源代码包)的命名规则:

software_name-VERSION.tar.gz

VERSION:major.minor.release

major:主版本号,通常代表重大功能改进的版本分支;

minor:次版本号,通常代表在某个版本的分支中的某个功能发生变化;

release:发行版本号,修复了某些bug或者对某段代码进行了优化;

例如:apache-tomcat-7.0.63.tar.gz


而rpm程序包命名规则为:

源码包:source code

softwarname_e-VERSION.src.rpm

二进制包:

software_name-VERSION-[release].[os].arch.rpm

VERSION:major.minor.release

[release]:rpm封包的发行版本号

[os]:所支持的操作系统版本,el6, el7, suse11, fedora22, ...

arch:硬件平台类型,I386, x64(amd64), ppc, sparc, noarch, ...

例如:puppet-3.8.7-1.el7.noarch.rpm


在制作rpm程序包的时候,通常其制作者会采用分包技术来构建rpm程序包;根据程序的不同功能,构建多个程序包;

被分包的程序包一般分为两类:

主程序包:

software_name-VERSION-[release].[os].arch.rpm

附属功能包:

software_name-function-VERSION-[release].[os].arch.rpm


一般来讲,主程序包和附属功能包具有相同的版本号,发行版本号,操作系统及兼容平台的标识;

所以,主程序包往往被所有的附属功能包所依赖;不安装主程序包就不能安装附属功能包;

其中function的类型有:devel, utils, libs, tools, manual, client, common, ...


下面我们来学习一种CentOS系统的前端管理工具:


rpm命令行工具:

一、功能:

1.将编译好的应用程序的各个组成文件打包成一个或多个程序包文件;

2.软件包的安装、卸载、升级、查询、校验及数据库管理功能


二、rpm程序包中文件的组成清单:

1.程序的文件

2.文件清单

3.软件安装或卸载时所运行的脚本文件,共分为四类:

preinstall:在正式的安装操作开始之前所运行的脚本,%pre

postinstall:在安装完成后所执行的脚本,%post

preuninstall:在正式卸载操作开始之前所运行的脚本,%preun

postuninstall:在卸载完成后所执行的脚本,%postun


三、rpm数据库(公共):

已经安装好的程序包名称及版本

/var/lib/rpm



四、获取程序包的途径:

1.系统的发行版的光盘

2.官方的文件服务器或者镜像站点:

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

https://mirrors.tuna.tsinghua.edu.cn

http://mirrors.hust.edu.cn

...

3.某个项目的官方站点:

4.第三方组织制作的rpm程序包站点

Fedora EPEL:红帽官方的社区组织,在镜像站点中也包含EPEL镜像;

搜索引擎:

http://pkgs.org

http://rpmfind.net

http://rpm.pbone.net

5.自己制作


五、rpm命令行工具:

安装、卸载、升级(降级)、查询、文件校验、验证、数据库维护;


rpm命令的通用选项:

-v:显示安装例程的信息,仅仅显示安装软件名

-vv:显示非常详细的操作信息


一、安装:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

install-options:

-h, --hash:用50个"#"来表示安装进度

--test:并不是真正的安装软件包,仅仅是测试是否在安装时能够正常完成,dry run模式;

--nodeps:忽略因为依赖关系导致的安装错误,不建议使用;

--replacefiles:在安装软件包时,软件包中的文件会直接将原来安装的文件替换;

--replacepkgs:无需卸载软件包而重新安装;

--noscripts:不运行任何脚本

--nopre

--nopost

--nosignature:不考虑软件包的来源是否合法;

--nodigest:不考虑软件包是否完整;


例:~]# rpm -ivh php-mysql-5.3.3-40.el6_6.x86_64.rpm php-pdo-5.3.3-40.el6_6.x86_64.rpm


二、升级:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

如果选择被安装的程序包事先并未安装,则全新安装;如果已经安装了旧版本,则可以升级安装;

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

仅仅只能对已经安装的低版本的程序包进行升级安装;

常用选项:与安装相同

--oldpackage:降级安装,用老版本的程序包替换新版本的程序包;

--force:强制升级

注意:

1.强烈建议,不要对内核进行升级操作;Linux可以支持多内核,可以直接安装新版本的内核,在启动界面可以手动更换;

2.升级安装可能会带来文件的变化,因此,系统默认不会直接更改之前安装过的软件的配置文件,新程序包中的配置文件会被重命名,通常会是:FINENAME.rpmnew


三、卸载:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...


--allmatches:卸载所有匹配指定名称的程序包的各个版本;

--nodeps:卸载时忽略依赖关系,不建议使用;

--test:测试卸载,dry run模式;


四、查询

rpm {-q|--query} [select-options] [query-options]

[select-options]

PACKAGE_NAME:直接给出程序包名

-a,--all:查询所有已经安装的程序包名;

~]# rpm -qa | grep mysql

-f,--file FILE:查找指定的文件是由哪个程序包提供的;

-p,--package PACKAGE_FILE:对还没有安装的程序包文件中执行查询操作

--whatprovides CAPABILITY:查询指定的CAPABILITY是由哪个程序包提供的

--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个程序包所依赖


[query-options]

--changelog:查询rpm程序包的changelog;

-c,--configfiles:查询指定程序包中有哪些是配置文件;

-d,--docfiles:查询指定程序包中有哪些文档文件;

-i,--info:查询程序包相关的信息,包括版本号,发行号,大小等;

-l,--list:列表显示程序包安装会生成哪些文件

--provides:列出指定程序包提供的所有的CAPABILITY;

-R,--requires:查询指定程序包的依赖关系;

--scripts:查看程序包所携带的脚本的内容;


具体使用方法:

-qf FILE

-qc|-ql|-qd|-qi PACKAGE_NAME

-qpl|-qpc|-qpd|-qpi PACKAGE_FILE


五、校验:

rpm {-V|--verify} [select-options] [verify-options]

S file Size differs:校验文件大小的不同

M Mode differs (includes permissions and file type):校验模式不同(包括权限和文件类型)

5 digest (formerly MD5 sum) differs:

D Device major/minor number mismatch:校验设备主/小号码不匹配

L readLink(2) path mismatch:校验读符号链接的值(2)路径不匹配

U User ownership differs:校验不同用户的所有权

G Group ownership differs:校验不同用户组的所有权


六、认证:

rpm --import /PATH/TO/KEY_FILE

rpm -K /PATH/TO/PACKAGE_FILE


七、数据库管理:

数据库的初始化和重建

/var/lib/rpm


rpm {--initdb|--rebuilddb}

[--dbpath DIRECTORY]


程序 文件 版本 查询 软件 功能 升级 脚本 软件包 不同 数据 数据库 系统 发行 管理 主程序 站点 制作 运行 附属 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 圆梦互联网科技 互联网科技小贷 成都互联网科技公司 掌上梦互联网科技 互联网 新科技 互联网科技视频素材 互联网科技股有哪些 美国互联网前沿科技 深圳市运趣互联网科技有限公司 互联网科技项目计划书材料类 港股科技和互联网 呼和浩特新华互联网科技学院 互联网企业科技类企业如何做账 广州有谷有贝互联网科技有限公司 互联网金融运营模式中的金融科技 互联网科技职业技能培训学校 马化腾互联网科技教学 杭州融税互联网科技有限公司 恒生科技指数 中概互联网 中智农互联网科技 互联网科技会 凡科互联网科技 安控科技rtu产品工业互联网 农村开互联网科技讲堂 威龙国际互联网科技公司 伊宁互联网科技做什么的 珠海东科互联网科技有限公司 科技和互联网行业的特点 盐城市攀科互联网科技有限公司
0