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

stat: cannot stat ‘/var/cache/jenkins’: No such file or directory
stat: cannot stat ‘/var/log/jenkins’: No such file or directory
stat: cannot stat ‘/var/lib/jenkins’: No such file or directory
error: %pre(jenkins-2.150.1-1.1.noarch) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package jenkins-2.150.1-1.1.noarch
  Verifying  : jenkins-2.150.1-1.1.noarch                                                                                                                                                                      1/1

Failed:
  jenkins.noarch 0:2.150.1-1.1
复制代码

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

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

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

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

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

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

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

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

总结一哈

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

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐