码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-27 21:18:29      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:rpm卸载   linux培训   老男孩教育   

工作中关于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,  完美解决问题。

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

 

 

 

 

 

 

 

 

 

 


本文出自 “老男孩linux运维” 博客,请务必保留此出处http://oldboy.blog.51cto.com/2561410/1655763

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

标签:rpm卸载   linux培训   老男孩教育   

原文地址:http://oldboy.blog.51cto.com/2561410/1655763

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!