工作中关于rpm的一个简单但头疼的问题

工作中关于rpm的一个简单但头疼的问题:

公司有个需要自动化更新rpm包的需求,rpm包名是:tingyun-agent-php-1.0.5-1.x86_64,本来是一个很简单的东西,一行代码就可以实现:

for a in `rpm-aq|grep tingyun`;do rpm -e $a;done

但是结果是:

[root@centos scripts]# for a in`rpm -aq|grep tingyun`;do rpm -e $a;done

error: packagetingyun-agent-php-1.0.5-1.x86_64 is not installed

报了个错误,说没有安装此包,但是很明显,查询这个包是存在的:

[root@centos scripts]# rpm-aq|grep tingyun

tingyun-agent-php-1.0.5-1.x86_64

手动执行可以卸载没有问题:

[root@centos scripts]# rpm -etingyun-agent-php-1.0.5-1.x86_64

[root@centos scripts]#

但是这个需要用脚本实现,于是我写在了脚本里,用-x来查看步骤:

[root@centos scripts]# sh -xtest.sh

++ rpm -aq

++ grep tingyun

+ for a in '`rpm -aq|greptingyun`'

+ rpm -e'tingyun-agent-php-1.0.5-1.x86_64'

error:package tingyun-agent-php-1.0.5-1.x86_64 is not installed

然后我把倒数第二行的结果拿出来单独执行,是可以执行成功的:

[root@centos scripts]# rpm -e'tingyun-agent-php-1.0.5-1.x86_64'

[root@centos scripts]#

于是我换一种方法:

[root@centos scripts]# rpm-aq|grep tingyun|xargs rpm -e

error: packagetingyun-agent-php-1.0.5-1.x86_64 is not installed

结果还是一样,多么奇葩的问题,我在其他的虚拟机上用这种方法都正常,但是这台虚拟机却碰到这种头疼的问题,怀疑可能和系统有关,百度和google上都找不到答案。纠结了一整天,没办法只好向老男孩老师请教,老师给出我一个方法如下,
for a in `rpm -aq tingyun-agent-php`;do rpm -e $a;done

直接用rpm –aq  rpm包名,不用grep,  完美解决问题。

非常感谢老男孩老师,解决了我一大头疼的问题。不得不说,姜还是老的辣spacer.gif

 

 

 

 

 

 

 

 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值