YUM安装MONGODB发生Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64错误

小知识1:

使用root权限都不能编辑某个文件,很可能是使用chattr命令锁定该文件了。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

使用lsattr file 查看是否被锁:

[root@localhost packages]# lsattr /etc/shadow

----i--------e- /etc/shadow

使用chattr -i file解锁

[root@localhost packages]# chattr -i /etc/shadow

-------------e- /etc/shadow

使用chattr -i file加锁

[root@localhost packages]# chattr +i /etc/shadow

----i--------e- /etc/shadow

小知识2:安装mongodb server 4.0.2过程需要在/etc/目录某些文件需要拥有写入权限。

/etc/group

/etc/gshadow

/etc/passwd

/etc/shadow

小知识3:centos安装mongodb

1、Configure repository.

Create an /etc/yum.repos.d/mongodb-enterprise.repo file so that you can install MongoDB enterprise directly using yum:

[mongodb-enterprise]

name=MongoDB Enterprise Repository

baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/4.0/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

2、Install the MongoDB Enterprise packages.

Install MongoDB Enterprise 4.0.

Issue the following command:

sudo yum install -y mongodb-enterprise

错误日志:

[root@localhost ~]# yum install mongodb-enterprise

*省略无用日志

*

Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64

groupadd: cannot open /etc/group

error: %pre(mongodb-enterprise-server-4.0.2-1.el6.x86_64) scriptlet failed, exit status 6

error:   install: %pre scriptlet failed (2), skipping mongodb-enterprise-server-4.0.2-1.el6

*省略无用日志

*

Failed:

mongodb-enterprise-server.x86_64 0:4.0.2-1.el6

Complete!

分析原因:

从日志中得到3点信息:

1、  执行rpm package过程出错(前提)

2、  /etc/group无法打开(主要原因)

3、  %pre部分脚本出错

解决步骤:

1、  使用vim/vm 编辑/etc/group文件,无法编辑有两种情况:

a)         ll查看write权限(变更权限chmod +w file)

b)         lsattr查看文件加锁(解锁chattr -i file )。

2、  使用rpm --scripts -qp mongodb-enterprise-server-4.0.2-1.el6.x86_64.rpm查看安装脚本(为spec文件功能)

[root@localhost packages]# rpm --scripts -qp mongodb-enterprise-server-4.0.2-1.el6.x86_64.rpm

warning: mongodb-enterprise-server-4.0.2-1.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID e52529d4: NOKEY

preinstall scriptlet (using /bin/sh):

if ! /usr/bin/id -g mongod &>/dev/null; then

/usr/sbin/groupadd -r mongod

fi

if ! /usr/bin/id mongod &>/dev/null; then

/usr/sbin/useradd -M -r -g mongod -d /var/lib/mongo -s /bin/false   -c mongod mongod > /dev/null 2>&1

fi

postinstall scriptlet (using /bin/sh):

if test $1 = 1

then

/sbin/chkconfig --add mongod

fi

preuninstall scriptlet (using /bin/sh):

if test $1 = 0

then

/sbin/chkconfig --del mongod

fi

postuninstall scriptlet (using /bin/sh):

if test $1 -ge 1

then

/sbin/service mongod condrestart >/dev/null 2>&1 || :

fi

红色部分内容preinstall scriptlet 对应错误%pre的内容

绿色部分内容为%pre阶段实际需要执行shell命令,将其逐条执行,根据提示解决错误。

3、  重新安装yum reinstall mongodb-enterprise

[root@localhost ~]# yum reinstall mongodb-enterprise

**省略不需要的日志

Installed:

mongodb-enterprise.x86_64 0:4.0.2-1.el6

Dependency Installed:

mongodb-enterprise-server.x86_64 0:4.0.2-1.el6

Complete!

总结:从错误日志分析出真正的原因,文件锁是本次rpm执行%pre阶段的真正的原因。解决问题之后,经常接着其他问题,需要重复3步骤几次才能彻底解决。

补充:怎么在yum install获取rpm包

在执行yum install 的过程会download相关rpm包,在install之前及时ctrl+c终止命令,然后到/var/cache/yum/x86_64/6/mongodb-enterprise/packages/(路径可能不一致)下获取包。

YUM安装MONGODB发生Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64错误的更多相关文章

  1. yum卸载失败Error in PREUN scriptlet in rpm package postgresql-server

    yum --setopt=tsflags=noscripts remove 参考 https://serverfault.com/questions/613256/yum-error-in-preun ...

  2. Red Hat Enterprise Server 6.0 安装Sendmail相关包

    由于需要在Linux服务器(Red Hat Enterprise Linux Server release 6.0)上配置邮件服务,需要安装Sendmail包,一般Sendmail的安装有两种方式:R ...

  3. 解决 yum安装时报错 Error: Protected multilib versions: 报错

    系统中缺少一个lib库 libz.so.1文件,使用yum安装会自动找到相关的rpm包,如下命令 # yum -y install libz.so.1 Resolving Dependencies-- ...

  4. yum安装软件包提示Error Downloading Packages解决方法

    在执行yum upgrade时报错 解决方法: 方法一: 1.清理本地yum缓存 执行:yum clean all 2.查看软件包列表 执行:yum list 注意:如果查询不到软件包列表,查看yum ...

  5. 安装mysql后ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了

    ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了 ------------------------------------- ...

  6. Django - 安装filebrowser发生Error finding Upload-Folder错误

    Error finding Upload-Folder (site.storage.location + site.directory). Maybe it does not exist? 解决: F ...

  7. YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法

    当编译PHP时出现如下错误时,找不到头绪 这时,打开DNS   vim /etc/resolv.conf   添加一行nameserver 192.168.1.1 完成上一步,则解决该问题 或者:ec ...

  8. yum 卸载 error: %preun(tengine-2.1.0-1.el6.x86_64) scriptlet failed, exit status 6

    error: %preun(tengine-2.1.0-1.el6.x86_64) scriptlet failed, exit status 6 Error in PREUN scriptlet i ...

  9. 【问题】yum安装软件报错ERROR:dbus.proxies

    转自:Yum安装报错:ERROR:dbus.proxies 环境: [红帽企业Linux.6.4.服务器版].rhel-server-6.4-x86_64-dvd(ED2000.COM).iso 安装 ...

随机推荐

  1. 记录——本地minikube安装ubuntu镜像总是报 Back-off restarting failed container问题 -已解决(更新)

    1.环境介绍 使用本机系统:macX minikube镜像:安装的阿里云提供的镜像(否则总是提示访问google的api,不FQ无法成功) 虚拟机情况:使用Virtual box 的虚拟机环境 min ...

  2. luogu P1354 房间最短路问题 计算几何_Floyd_线段交

    第一次写计算几何,还是很开心的吧(虽然题目好水qaq) 暴力枚举端点,暴力连边即可 用线段交判一下是否可行. Code: #include <cstdio> #include <al ...

  3. codecademy练习记录--Learn Python(70%)

    ############################################################################### codecademy python 5. ...

  4. JTree知识小点

    创建一个新节点 DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新节点"); 被选中的节点 Default ...

  5. HDU 1828 Picture (线段树:扫描线周长)

    依然是扫描线,只不过是求所有矩形覆盖之后形成的图形的周长. 容易发现,扫描线中的某一条横边对答案的贡献. 其实就是 加上/去掉这条边之前的答案 和 加上/去掉这条边之后的答案 之差的绝对值 然后横着竖 ...

  6. linux下wps的字体缺失解决方法

    可以参考Mr.Liang 说明:当安装好wps for linux,然后打开wps会提示字体缺失,可做如下操作: 1.下载wps缺失字体(资源侵权联系我删除) 2.解压 unzip -d ./wps_ ...

  7. 递归树处理,配合vue的vueTreeselect组件使用

    在项目中经常会使用到tree,并且需要对递归树进行操作. 在vue项目中,使用vue-treeselect插件(https://vue-treeselect.js.org/) 使用中遇到的问题: 1. ...

  8. [剑指offer] 5. 用两个栈实现队列+[剑指offer]30. 包含min函数的栈(等同于leetcode155) +[剑指offer]31.栈的压入、弹出序列 (队列 栈)

    c++里面stack,queue的pop都是没有返回值的, vector的pop_back()也没有返回值. 思路: 队列是先进先出 , 在stack2里逆序放置stack1的元素,然后stack2. ...

  9. 【codeforces 749D】Leaving Auction

    [题目链接]:http://codeforces.com/problemset/problem/749/D [题意] 有n个人在竞价; 按照时间的顺序给出n次竞价(可能有一些人没有参加竞价); 每次竞 ...

  10. java字符文件的读写

    1.java文件读写,首先我们需要导入相应的包:java.io.*; 2.代码如下: package Demo1; import java.io.*; public class FileWirteTe ...