zoukankan      html  css  js  c++  java
  • 一次安装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.只要是对系统有做过任何修改,一定要有相关的记录档案,包括执行了什么命令。

  • 相关阅读:
    Xcode 8.2 想使用插件 怎么办? 教你科学的使用插件
    JSAPI_Ticket签名
    Java中HashMap,LinkedHashMap,TreeMap的区别[转]
    微信支付开发,再次签名,APP调用
    微信支付开发,统一下单
    android studio安装插件
    java实现mysql数据库的备份及还原
    java项目中读取src目录下的文件
    eclipse增加浏览器chrome
    cd 命令
  • 原文地址:https://www.cnblogs.com/along1226/p/4854535.html
Copyright © 2011-2022 走看看