yum安装报错Error in PREIN scriptlet in rpm package

╰半橙微兮° 2022-01-17 19:57 494阅读 0赞

在安装jenkins的时候一直失败。报错内容是

  1. stat: cannot stat ‘/var/cache/jenkins’: No such file or directory
  2. stat: cannot stat ‘/var/log/jenkins’: No such file or directory
  3. stat: cannot stat ‘/var/lib/jenkins’: No such file or directory
  4. error: %pre(jenkins-2.150.1-1.1.noarch) scriptlet failed, exit status 1
  5. Error in PREIN scriptlet in rpm package jenkins-2.150.1-1.1.noarch
  6. Verifying : jenkins-2.150.1-1.1.noarch 1/1
  7. Failed:
  8. jenkins.noarch 0:2.150.1-1.1
  9. 复制代码

问题的关键是PREIN scriptlet,就是preinstall scriptlet,这是rpm在安装前执行的一段sh脚本,为安装创建相应的文件夹什么的。

上面的三个No such file or directory显然就是,这三个文件夹没有被创建好。

我们看看preinstall出了什么问题。

  1. yum install jenkins --downloadonly --downloaddir=/root
  2. rpm --scripts -qp jenkins-2.150.1-1.1.noarch.rpm > jenkins.log
  3. 复制代码

关于这两条命令在做什么应该很明了吧。我们找一下和那三个文件夹有关的部分。

  1. if [ -f "/etc/sysconfig/jenkins" ]; then
  2. logger -t jenkins.installer "Found previous config file /etc/sysconfig/jenkins"
  3. . "/etc/sysconfig/jenkins"
  4. stat --format=%U "/var/cache/jenkins" > "/tmp/jenkins.installer.cacheowner"
  5. stat --format=%U "/var/log/jenkins" > "/tmp/jenkins.installer.logowner"
  6. stat --format=%U ${JENKINS_HOME:-/var/lib/jenkins} > "/tmp/jenkins.installer.workdirowner"
  7. else
  8. logger -t jenkins.installer "No previous config file /etc/sysconfig/jenkins found"
  9. fi
  10. 复制代码

这问题就很明白了,结合前面的stat报错,明确了就是这段报错误。这段的意思是,如果/etc/sysconfig/jenkins存在,执行下面一系列操作,应该是为了重复安装写的。

一看这个/etc/sysconfig/jenkins,真的有,是昨天看教程的时候看漏了一步给加上去的…这就很搞笑了

总结一哈

出了问题,搞明白工具在干嘛是最好的解决方法

转载于:https://juejin.im/post/5cd4f276f265da0374189718

发表评论

表情:
评论列表 (有 0 条评论,494人围观)

还没有评论,来说两句吧...

相关阅读