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. 前端精选文摘:css之BFC 神奇背后的原理(转载)

    一.BFC是什么? 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说 ...

  2. Windows 错误 0x80070570

    Windows程序运行或者删除文件提示错误0x80070570:文件或目录损坏且无法读取. 环境 Windows 10 解决办法 管理员权限打开cmd,输入chkdsk 盘符: /f,提示输入Y,修复 ...

  3. webstorm狂吃内存的解决方法

    今天使用webstorm,电脑居然卡死了,我的电脑配置: 运行内存16g,1.5T内存的台式, 后来发现,可以通过设置 内存值大小来解决. 具体办法: 找到WebStorm.exe.vmoptions ...

  4. BZOJ 3672 [NOI2014]购票 (凸优化+树剖/树分治)

    题目大意: 略 题面传送门 怎么看也是一道$duliu$题= = 先推式子,设$dp[x]$表示到达$x$点到达1节点的最小花费 设$y$是$x$的一个祖先,则$dp[x]=min(dp[y]+(di ...

  5. Python多环境扩展管理

    Python发展至今,版本众多,在使用过程中经常遇到第三方库依赖的Python版本和系统Python版本不一致的情况.同时又因系统底层需调用当前版本Python,所以不能随意变更当前系统Python版 ...

  6. v4l2程序实例

    #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> ...

  7. JS深拷贝拷贝的区别?

    拷贝拷贝引用,共享内存 深拷贝拷贝实例,不共享内存   1. 浅拷贝:当一个对象拷贝另一个对象的数据时,只要一个对象的数据发生改变时,另一个对象的数据也会发生改变,因为浅拷贝拷贝的是引用的地址 实现方 ...

  8. JavaScript 的对象继承方式,有几种写法?

    JavaScript 的对象继承方式,有几种写法? 一.对象冒充 其原理如下:构造函数使用 this 关键字给所有属性和方法赋值(即采用类声明的构造函数方式).因为构造函数只是一个函数,所以可使 Pa ...

  9. Java Web学习总结(26)——Servlet不同版本之间的区别

    1.   2.3版本 2.3版本 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2. ...

  10. MyBatis学习总结(1)——MyBatis快速入门

    一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...