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 查看是否被锁:

[[email protected] packages]# lsattr /etc/shadow

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

使用chattr -i file解锁

[[email protected] packages]# chattr -i /etc/shadow

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

使用chattr -i file加锁

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

错误日志:


[[email protected] ~]# 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文件功能)


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


[[email protected] ~]# 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/(路径可能不一致)下获取包。

原文地址:https://www.cnblogs.com/migrantworkers/p/9720393.html

时间: 2024-09-30 11:07:25

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

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

当编译PHP时出现如下错误时,找不到头绪 这时,打开DNS   vim /etc/resolv.conf   添加一行nameserver 192.168.1.1 完成上一步,则解决该问题 YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法

yum安装报错error: unpacking of archive failed on file /usr/bin/xxxx: cpio: open Failed

Bash漏洞爆出来了,赶紧更新一下补丁,#yum -y update bash 报错了 error: unpacking of archive failed on file /usr/bin/bashbug-64;54254708: cpio: open 参考了网上资料,原来是以前加固时给/usr/bin加了i权限 # lsattr /usr | grep bin ----i-----I-- /usr/bin # chattr -i /usr/bin 然后yum安装就OK了 参考资料:http:

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

系统中缺少一个lib库 libz.so.1文件,使用yum安装会自动找到相关的rpm包,如下命令 # yum -y install libz.so.1 Resolving Dependencies --> Running transaction check ---> Package zlib.i686 0:1.2.3-29.el6 will be installed --> Finished Dependency Resolution Error: Protected multilib

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

ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了 ---------------------------------------------- Fedora8启动mysql 报错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) 1.先查看 /etc/rc.d/ini

yum安装报错“Error: xz compression not available”

在测试服务器进行docker学习,有些centos7软件安装上和自己的服务器不兼容所以导致yun下载软件时报错:Error: xz compression not available 对于报错解决办法: rm -fr /var/cache/yum/x86_64/6/epel/ rm -rf /etc/yum.repos.d/epel* 重新安装epel源和base源 wget -O/etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.co

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

使用 yum install hmaccalc.x86_64 安装软件包时,提示:Error Downloading Packages 解决方法: 1.清理本地yum缓存 执行:yum clean all 2.查看软件包列表 执行:yum list 注意:如果查询不到软件包列表,查看yum源是否配置正确.

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

转自:Yum安装报错:ERROR:dbus.proxies 环境: [红帽企业Linux.6.4.服务器版].rhel-server-6.4-x86_64-dvd(ED2000.COM).iso 安装时选用Software Development Workstation 问题描述: yum安装DHCP服务时输出 [[email protected] yum.repos.d]# yum list | grep dhcp dhcp-common.x86_64 12:4.1.1-34.P1.el6 @

配置使用;yum安装slatstack的master,minion<at>centos6_x86_64

使用: ####################################### 配置: ####################################### 安装: 服务端安装: [[email protected] about_saltstack]# yum -y install yum-utils.noarch Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds

mysql 的 rpm/yum 安装

我的安装环境为 centos6.4       MySQL相关的包由 www.mysql.com dev.mysql.com  下载 用 rpm包的方式安装 mysql: [[email protected] ~]# wget  http://dev.mysql.com/get/Downloads/MySQL-5.6/  MySQL-5.6.30-1.el6.x86_64.rpm-bundle.tar [[email protected] ~]# ls MySQL-5.6.30-1.el6.x8