rpm 包管理功能、yum 程序包管理

本文详述了RPM包管理系统的基本概念、命名规则、依赖解决方式及其常用操作指令,包括安装、升级、卸载、查询和校验等。同时介绍了YUM作为RPM前端工具的功能与使用方法,涵盖搜索、列表显示、信息查询、安装升级和移除软件等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RPM, Redhat Package Manager

程序包管理器功能: 编译好的应用程序的个组成文件,打包成一个或几个程序包文件,从而更方便快捷地实现程序包的安装、升级、卸载的管理操作。

rpm 包命名格式:

name-VERSION-release.arch.rpm
     VERSION: major.minor.release
						  release.arch: rpm 包的发行号
									   archetecture:i386,x64,ppc,noarch
									   
例如:redis-3.0.2.1-centos7.x64.rpm

自动解决依赖关系:

  • yum:rhel 系列系统上 rpm 包管理器的前端工具
  • apt-get(apt-cache):deb 包管理器的前端工具
  • zypper:suse 的 rmp 包管理器的前端工具

rpm [OPTIONS] [PACKAGE_FILE]

安装:-I,--install
升级:-U,--update,-F,--freshen
卸载:-e,--erase
查询:-q,--query
校验:-V,---verify
数据库维护:--builddb,--initdb

general options:
	-v:verbose,详细信息
	-vv:更详细的信息

安装 install

rpm {-i|–install} [install-options] PACKAGE_FILE … (man 文档 29% 左右位置)

~]# rpm -ivh PACKAGE_FILE...

[install-options]:
	-h:hash marks 输出进度条,每个#表示 2% 的进度
	--test:测试安装,检查并报告依赖关系及冲突消息
	--nodeps:忽略依赖关系,不建议使用
	--replacepkgs:重新安装

升级/更新 update/freshen

rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
-U 意为升级或安装
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
-F 只升级不安装

--oldpackage:降级
--force:强制升级

卸载 erase

rpm {-e|–erase} [–allmatches] [–justdb] [–nodeps] [–test] PACKAGE_NAME …

--allmatches:卸载所有匹配到指定名称的程序包各版本
--nodeps:忽略依赖关系
--test:测试卸载,dry run 模式

查询 query

rpm 在查询时是在 /var/lib/rpm/ 目录下的数据库文件中。

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

[select-options]

PACKAGE_NAME:查询指定的程序包是否已经安装
-a,-all:查询所有已经安装的包;可配合 grep 使用
-f FILE:查询指定的文件由哪个程序包安装生成
-p,--package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作,查看 rpm 文件内容
--whatprovides CAPABLITY:查询指定的 CAPABILITY 由哪个程序包提供
--whatrequires CAPABILITY:查询指定的 CAPABILITY 被哪个包所依赖

[query-options]

--changelog:查询 rpm 包的 changelog
-l,--list:程序包安装生成的所有文件的列表
-i,--info:程序包相关的信息
-c,--configfiles:查询指定的程序包的配置文件
-d,--docfiles:查询指定的程序包提供的帮助文档
--provides:列出指定的程序包提供的所有 capability
--scripts:查看程序包自带的脚本片断

练习:查找系统中以 a 开头的软件
~]# rpm -qa | grep “^a” | wc -l

校验 verify

通过对比 /var/lib/rpm 目录下的数据库文件,找出目前环境下安装的软件。

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

-V PACKAGE_NAME:若该软件被改动过,则会列出来
-Va:查询系统上所有被改动过的文件
-Vf:某个文件是否被改动过

例如:首先我们修改/etc/crontab 文件,新增一行 # new line. 保存并退出,而后执行命令

rpm -Vf /etc/crontab

# 输出如下
S.5....T.  c /etc/crontab

解释说明:中间的 c 代表 configuration,以为配置文件。前面字符意为:

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
U User ownership differs
G Group ownership differs
T mTime differs
P caPabilities differ

获取并导入信任的制作者的秘钥:对于 CentOS 发行版来说:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

yum,Yellowdog Update Modifier

yum [options] [command] [package …]

先介绍 yum 的命令行选项:

-y:自动回答都为 yes
-q:静默模式

查询

 search:搜寻某个软件名称或者是符合描述的字符串
  list :列出目前 yum 所管理的所有的软件名称与版本,类似 rpm -qa
  info :同上,不过有点类似 rpm -qai 的执行结果
  provides:从文件去搜寻软件,类似 rpm -qf 的功能,即查看指定的特性是由哪个程序包提供

安装升级、移除

yum install package1 [package2] […]
yum update package1 [package2] […]
yum remove | erase package1 [package2] […]

yum 的软件群组功能

yum [群组功能] [软件群组]
选项与参数:

grouplist   :列出所有可使用的“软件群组组”,例如 Development Tools 
groupinfo   :后面接 group_name,则可了解该 group 内含的所有软件名
groupinstall:安装一整组的软件群组
groupremove :移除某个软件群组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值