工作中关于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

但是结果是:

[[email protected] 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

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

[[email protected] scripts]# rpm-aq|grep tingyun

tingyun-agent-php-1.0.5-1.x86_64

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

[[email protected] scripts]# rpm -etingyun-agent-php-1.0.5-1.x86_64

[[email protected] scripts]#

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

[[email protected] 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

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

[[email protected] scripts]# rpm -e‘tingyun-agent-php-1.0.5-1.x86_64‘

[[email protected] scripts]#

于是我换一种方法:

[[email protected] 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,  完美解决问题。

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

时间: 2024-10-06 15:31:14

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

Linux内核中的信号机制--一个简单的例子【转】

本文转载自:http://blog.csdn.net/ce123_zhouwei/article/details/8562958 Linux内核中的信号机制--一个简单的例子 Author:ce123(http://blog.csdn.NET/ce123) 信号机制是类UNIX系统中的一种重要的进程间通信手段之一.我们经常使用信号来向一个进程发送一个简短的消息.例如:假设我们启动一个进程通过socket读取远程主机发送过来的网络数据包,此时由于网络因素当前主机还没有收到相应的数据,当前进程被设置

WPF中使用MVVM创建一个简单的框架

MVVM模式 一.MVVM模式概述 MVVM Pattern : Model\View\ViewModel View:视图.UI界面 ViewModel:ViewModel是对Model的封装,通过一系列属性暴露Model的状态,提供给View进行显示 Model:数据模型 使用MVVM模式可以将代码逻辑和UI进行分离,因此开发团队可以关注创建健壮的ViewModel类,而设计团队可以关注设计界面友好的View.要融合两个团队输出只需要在View的xaml上进行正确的绑定即可. 二.演示程序 下

Golang中使用heap编写一个简单高效的定时器模块

定时器模块在服务端开发中非常重要,一个高性能的定时器模块能够大幅度提升引擎的运行效率.使用Golang和heap实现一个通用的定时器模块,代码来自:https://github.com/xiaonanln/goTimer 也可以查看文档:http://godoc.org/github.com/xiaonanln/goTimer,下面是完整的代码,并进行适当的注释和分析. 从性能测试结果来看,基于heap的定时器模块在效率上并不会比时间轮(TimeWheel)的实现慢多少,但是逻辑上要简单很多.

前端工作中一些关于hosts的简单设置

hosts原理: hosts文件存放的就是一些常用的网站主机的域名和其对应的IP地址.当我们访问网络的时候,可是以用浏览器在地址栏中输入网站的域名并回车,也可以是PING一个网站的域名等,系统往往会首先检查本地的HOSTS表文件,看其中是否已经有相应的域名与IP地址的对应关系,如果有就会直接采用,如果没有,那么就得由DNS服务器进行域名解析完成域名与IP的转换工作. 使用场景: 1.加快域名解析 对于要经常访问的网站,我们可以通过在Hosts中配置域名和IP的映射关系,提高域名解析速度.由于有了

关于Java中的反射的一个简单使用

把以前在其他地方的技术文章重新整理一遍, 方便自己回忆, 也方便他人借鉴. 刚工作的时候发过这么一段代码: package cn.com.hanbinit.test; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; public class Test { public static void main(String[] args) throws IllegalArgumentEx

关于python中sort排序的一个简单问题:

最近有小伙伴私聊问了一些类似的问题,就是关于python的sort排序的问题: a = [1, 0, 4, 0, 2, 3] a.sort(key=bool) print(a) 输出结果: [0, 0, 1, 4, 2, 3] 就是对这个排序的有点不太理解,为什么是[0, 0, 1, 4, 2, 3],不应该按升序来的吗?之所以产生这个误区,是因为对这个sort理解还不够,我之前也写过一篇关于sort排序的实现,里面简单的阐述原理,并且也实现了demo.我们再来回到这个问题上:a.sort(ke

j2ee之springMVC中的web.xml一个简单调用

<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati

如何设计Java框架----一个简单的例子【翻译】

原文:http://www.programcreek.com/2011/09/how-to-design-a-java-framework/ 原文和翻译都只是参考,如有不对,欢迎指正. 你可能会好奇框架是如何工作的,我会创建一个简单的框架来演示一下. 框架的目标首先,为什么我们需要框架而不是库呢?框架的目标是定义一个让开发者实现基于个性化需求的某些功能的过程,换句话说,框架定义了骨架而开发者进行填补. 简单的框架在下面的例子中,前三个类是框架的一部分,第四个类是该框架的客户端代码. Main.j

通过python 构建一个简单的聊天服务器

构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使用 Telnet,客户机可以连接到 Python 聊天服务器上,并在全球范围内相互进行通信.提交到聊天服务器的消息可以由其他人进行查看(以及一些管理信息,例如客户机加入或离开聊天服务器).这个模型如图 1 所示. 图 1. 聊天服务器使用 select 方法来支持任意多个客户机 聊天服务器的一个重要