rpm升级处理

本文详细介绍了使用RPM包进行软件升级的过程,包括如何确保新版本大于现有版本、RPM包内的预定义脚本及其作用,以及在不同操作场景下如何通过内部变量$1来区分install、upgrade和uninstall等操作。

1. 使用-U 进行升级新的rpm包的version一定要大于现有的version号(好像是在说废话),否则不能升级

2. 介绍rpm包中预定义的脚本:

%pre 在安装包之前运行

%post 在安装包之后运行

%preun 在卸载包之前运行

%postun 在卸载包之后运行

这些脚本可以帮助用户在不同的时间点完成一些必须的事情。

然后再说下RPM -U中这些脚本的调用步骤:

运行新包的 %pre
安装新文件
运行新包的 %post
运行旧包的 %preun
删除新文件未覆盖的所有旧文件
运行旧包的 %postun

大家可以仔细看看以上步骤,细心的应该已经能发问了:

1. 在执行%pre和%post上如何区分是install还是upgrade

2. 在执行%preun和%postun又如何区分upgrade和uninstall

这里就要介绍rpm的一个内部变量了:$1

Action

Count

Install the first time

1

Upgrade

2 or higher (depending on the number of versions installed)

Remove last version of package

0

对了,在需要通过$1 的值来区分是哪个操作, 如:

[plain] view plaincopy

if [ "$1"="1" ];then  
xxxx  
fi

由于在上一个release的rpm包中没有在%preun进行类似的判断,导致在upgrade中调用了%preun,这个脚本会对现有的rpm进行一些破坏。无法挽回

当然也为接下来的知识点做了铺垫,只能感叹,RPM真是博大精深啊!

请关注这个参数:--nopreun

rpm -Uvh --nopreun xxx-1.1-1.x86_64.rpm


转载于:https://my.oschina.net/liangzi1210/blog/352288

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值