YUM安装MONGODB发生Error in PREIN scriptlet in rpm package mongodb-enterprise-server-4.0.2-1.el6.x86_64错误
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错误的更多相关文章
- yum卸载失败Error in PREUN scriptlet in rpm package postgresql-server
yum --setopt=tsflags=noscripts remove 参考 https://serverfault.com/questions/613256/yum-error-in-preun ...
- Red Hat Enterprise Server 6.0 安装Sendmail相关包
由于需要在Linux服务器(Red Hat Enterprise Linux Server release 6.0)上配置邮件服务,需要安装Sendmail包,一般Sendmail的安装有两种方式:R ...
- 解决 yum安装时报错 Error: Protected multilib versions: 报错
系统中缺少一个lib库 libz.so.1文件,使用yum安装会自动找到相关的rpm包,如下命令 # yum -y install libz.so.1 Resolving Dependencies-- ...
- yum安装软件包提示Error Downloading Packages解决方法
在执行yum upgrade时报错 解决方法: 方法一: 1.清理本地yum缓存 执行:yum clean all 2.查看软件包列表 执行:yum list 注意:如果查询不到软件包列表,查看yum ...
- 安装mysql后ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
ps -A | grep -i mysql kill 列出来的进程 service mysql start 我的问题就解决了 ------------------------------------- ...
- Django - 安装filebrowser发生Error finding Upload-Folder错误
Error finding Upload-Folder (site.storage.location + site.directory). Maybe it does not exist? 解决: F ...
- YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法
当编译PHP时出现如下错误时,找不到头绪 这时,打开DNS vim /etc/resolv.conf 添加一行nameserver 192.168.1.1 完成上一步,则解决该问题 或者:ec ...
- 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 ...
- 【问题】yum安装软件报错ERROR:dbus.proxies
转自:Yum安装报错:ERROR:dbus.proxies 环境: [红帽企业Linux.6.4.服务器版].rhel-server-6.4-x86_64-dvd(ED2000.COM).iso 安装 ...
随机推荐
- Kattis - String Matching(kmp)
String Matching Input The input consists of several test cases. Each test case consists of two lines ...
- C语言基本语法——函数
1.什么是函数 2.函数语法 3.函数声明 4.函数调用 5.函数的形参与实参 6.return与exit关键字 7.递归函数 1.什么是函数 • 函数就是一连串语句被组合在一起,并指定了一个名字 • ...
- Extjs win
//创建window var win = Ext.create("Ext.window.Window", { id: "myWin", title: " ...
- 如何设置,获取,删除cookie?
cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 1.不同的浏览器存放的cookie位置不一样,也是不能通用的 2.cookie的存储 ...
- [中文] 以太坊(Ethereum )白皮书
以太坊(Ethereum ):下一代智能合约和去中心化应用平台 翻译|巨蟹 .少平 译者注|中文读者可以到以太坊爱好者社区(www.ethfans.org)获取最新的以太坊信息. 当中本聪在2009年 ...
- SparkSql初级编程实践
1.Spark SQL 基本操作将下列 JSON 格式数据复制到 Linux 系统中,并保存命名为 employee.json.{ "id":1 , "name" ...
- IE6 浏览器常见兼容问题 共23个
1.<!DOCTYPE HTML>文档类型的声明. 产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,会触发IE6浏览器的怪异解析现象: 解决办法:书写文档声明. 2.不同浏览器当 ...
- sql查询语句中on和where的区别
sql中的连接查询分为3种, cross join,inner join,和outer join , 在 cross join和inner join中,筛选条件放在on后面还是where后面是没区别 ...
- 20个C#热点问题
- nodejs即时聊天
一直想做一个即时聊天的应用,前几天看到了socket.io,感觉还不错.自己略加改动,感觉挺不错的.官网上给的样例非常easy,以下改进了一点,实现了历史消息的推送. demo地址:chat.code ...