一次安装rpcbind失败引发的思考

问题:

yum install rpcbind -y

出现如下错误:

Error in PREIN scriptlet in rpm package rpcbind-0.2.0-11.el6.x86_64
error: %pre(rpcbind-0.2.0-11.el6.x86_64) scriptlet failed, exit status 1
error:   install: %pre scriptlet failed (2), skipping rpcbind-0.2.0-11.el6
  Verifying  : libtirpc-0.2.1-10.el6.x86_64                                                                                       1/3
  Verifying  : libgssglue-0.1-11.el6.x86_64                                                                                       2/3
  Verifying  : rpcbind-0.2.0-11.el6.x86_64                                                                                        3/3 

Dependency Installed:
  libgssglue.x86_64 0:0.1-11.el6                                    libtirpc.x86_64 0:0.2.1-10.el6                                   

Failed:
  rpcbind.x86_64 0:0.2.0-11.el6

解决:

错误提示安装软件的时候执行什么脚本出现了错误,经百度之后知道在安装rpm软件包的时候,会先执行rpm包中的预处理脚本,应该是执行这个脚本的时候出现了错误,所以我尝试查看这个脚本都执行了什么内容;

那么如何获取到这个脚本呢?

取对应的rpm包
yum install xxxxpackage  --downloadonly --downloaddir=/root
取得rpm对应的安装预处理脚本
rpm --scripts -qp xxxxpackage  > x-scripts.log

详见:

http://xifan.blog.51cto.com/632768/372307/

发现该脚本中有用到useradd/userdel命令来添加rpc的用户,由此想起之前使用chattr +i /etc/passwd对passwd文件做了加锁处理,所以会造成useradd/userdel命令不能正常执行,这应该就是造成预处理脚本不能正常执行的原因了吧,使用chattr -i /etc/passwd解锁之后软件可以正常安装。

注:从出现错误,到发现预处理脚本这一概念,再到想起passwd锁定一共花费了将近2个小时。

总结:

1.要了解软件安装的原理

2.只要是对系统有做过任何修改,一定要有相关的记录档案,包括执行了什么命令。

时间: 2024-10-12 10:49:55

一次安装rpcbind失败引发的思考的相关文章

由打开文件失败引发的思考

笔者的某个目录下面有两千个c文件需要处理,为了快速实现,写了下面的代码去打开: 1 #include <stdio.h> 2 #include <string.h> 3 4 int main(void) 5 { 6    int i = 0; 7    FILE * fp = NULL; 8    char filename[10] = {0,}; 9 10    printf("Hello!\n"); 11 12    for(i=0;i<8192;i+

一次部署HTTPS的相关事件引发的思考

前言: 上周五快要下班的时候,突然收到通知客户希望了解一下部署HTTPS的流程,这种事情谁听了都会有几分诧异的.因为这件事虽然和工作有一定的相关度,但平时不会走这个方向,实际上也较少接触.此外,客户手下应该不缺人,做运维和开发的肯定比我更懂这个,但情况却和我想的不一样. 正文: 客户有需求,就应该尽量满足!因此,尽管之前对Apache.Tomcat的一些配置不熟,也未有过自己部署HTTPS的经验[当然失败的尝试还是有的],便趁着周末了解了一下相关的东西,在本地搭建了环境.实践表明,当你对一个东西

UPDATE 时主键冲突引发的思考【转】

假设有一个表,结构如下: root@localhost : yayun 22:59:43> create table t1 ( -> id int unsigned not null auto_increment, -> id2 int unsigned not null default '0', -> primary key (id) -> )engine=myisam; Query OK, 0 rows affected (0.00 sec) root@localhost

Navicat连接mysql出现2003——can&#39;t connect to mysql server on localhost(10061)引发的思考)

一:起因 (0)最近由于病了一场,闲暇时间(即生病期间)一直思考如下问题: 思考一:如何做一名合格的程序猿,怎么才能成为一名名副其实的程序猿? 思考二:还有就是到底,值不值得熬夜加班去搞研发(或转型或做相对轻松的其它IT岗位~~~对于这个问题,我一时无法给出答案,希望各位帮我分析一下,不胜感激!!!) (1)如果没有做到这一点你怎么能说,你是一名合格的程序猿 —— 安装程序或者运行开发程序... http://d.dxy.cn/detail/7870458http://d.dxy.cn/deta

曲演杂坛--一条DELETE引发的思考

原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID INT IDENTITY(1,1) PRIMARY KEY, DT DATETIME ) 每次业务想要获取一个新ID,就执行以下SQL: INSERT INTO TB001(DT) SELECT GETDATE(); SELECT @@IDENTITY 由于这些数据只需保留最近一天的数据,因此建立一个SQL作业来定期删除数据,删除脚

黑马程序员---Objective-C基础学习---一道课后习题引发的思考

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一道课后习题引发的思考 /* 需求:设计一个类Point2D,用来表示二维平面中某个点 1> 属性 * double x * double y 2> 方法 * 属性相应的set和get方法 * 设计一个对象方法同时设置x和y * 设计一个对象方法计算跟其他点的距离 * 设计一个类方法计算两个点之间的距离 3> 提示 * C语言的math.h中有个函数:double pow(double

一个截取字符串函数引发的思考

背景 前些天,遇到这样一个问题,问题的内容如下: 要求编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC", 4,截取后的效果应该为"我AB",输入"我ABC汉DEF", 6,应该输出为"我ABC",而不是"我ABC+汉的半个". 问题 刚看到这个问题的时候,以为还是很简单的,但写出来之后,发现并不是想要的效果.回想一下当时的思路,就发现刚开

atom安装插件失败 latex

用atom写latex 链接 http://www.cnblogs.com/schaepher/p/5934184.html 但在gui下安装插件失败 按照以下步骤解决了 安装gitbash cd .atom/packages git clone URL(相应插件的git链接) 4.cd 相应插件的文件 5.npm install 注:4-5是在cmd下运行的,[需事先安装npm,去nodejs官网装个nodejs即可,装完需运行D:\Nodejs\nodevars.bat配置环境变量] 6.O

关于失败的一点思考

睡觉之前突然想到马云说过的一句话:我们要习惯于拒绝,习惯失败,如果我们还没成功,那是因为我们的失败还不够 --------2016.4,11  以此自勉 关于失败的一点思考