在安装jenkins的时候一直失败。报错内容是
stat: cannot stat ‘/var/cache/jenkins’: No such file or directorystat: cannot stat ‘/var/log/jenkins’: No such file or directorystat: cannot stat ‘/var/lib/jenkins’: No such file or directoryerror: %pre(jenkins-2.150.1-1.1.noarch) scriptlet failed, exit status 1Error in PREIN scriptlet in rpm package jenkins-2.150.1-1.1.noarch Verifying : jenkins-2.150.1-1.1.noarch 1/1Failed: 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=/rootrpm --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
,真的有,是昨天看教程的时候看漏了一步给加上去的...这就很搞笑了
总结一哈
出了问题,搞明白工具在干嘛是最好的解决方法