启动 Jenkins 时遇到问题:“java.io.FileNotFoundException:/usr/share/java/jenkins/war/META-INF/MANIFEST.MF(没有这样的文件或目录)”

Dav*_*ave 5 linux startup amazon-web-services jenkins

我刚刚下载了 Jenkins WAR,版本 1.651.1。我\xe2\x80\x99m 尝试在我的 Amazon Linux 机器上设置它。I\xe2\x80\x99m 运行 Java 1.7。我将 WAR 移至其自己的目录 /usr/share/java/jenkins 中,然后设置JENKINS_HOME为该目录。然后我运行此处列出的命令 \xe2\x80\x94 https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins。在网站上看起来很简单。但我收到以下错误:

\n
[davea@mydevbox ~]$ java -jar /usr/share/java/jenkins/jenkins.war \nRunning from: /usr/share/java/jenkins/jenkins.war\nwebroot: EnvVars.masterEnvVars.get("JENKINS_HOME")\nApr 19, 2016 9:29:34 PM winstone.Logger logInternal\nINFO: Beginning extraction from war file\nApr 19, 2016 9:29:34 PM winstone.Logger logInternal\nINFO: Winstone shutdown successfully\nApr 19, 2016 9:29:34 PM winstone.Logger logInternal\nSEVERE: Container startup failed\njava.io.FileNotFoundException: /usr/share/java/jenkins/war/META-INF/MANIFEST.MF (No such file or directory)\n    at java.io.FileOutputStream.open(Native Method)\n    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)\n    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)\n    at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:280)\n    at winstone.HostConfiguration.<init>(HostConfiguration.java:83)\n    at winstone.HostGroup.initHost(HostGroup.java:66)\n    at winstone.HostGroup.<init>(HostGroup.java:45)\n    at winstone.Launcher.<init>(Launcher.java:145)\n    at winstone.Launcher.main(Launcher.java:356)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:606)\n    at Main._main(Main.java:307)\n    at Main.main(Main.java:98)\n
Run Code Online (Sandbox Code Playgroud)\n

我还需要做什么才能让 Jenkins 启动?

\n

编辑:响应给出的建议的输出......

\n
[davea@mydevbox ~]$ sudo useradd jenkins\n[davea@mydevbox ~]$ sudo chown -R jenkins:jenkins /usr/share/java/jenkins/jenkins.war \n[davea@mydevbox ~]$ \n[davea@mydevbox ~]$ sudo su - jenkins\n[jenkins@mydevbox ~]$ java -jar /usr/share/java/jenkins/jenkins.war\nRunning from: /usr/share/java/jenkins/jenkins.war\nwebroot: EnvVars.masterEnvVars.get("JENKINS_HOME")\nApr 21, 2016 4:46:08 PM winstone.Logger logInternal\nINFO: Beginning extraction from war file\nApr 21, 2016 4:46:08 PM winstone.Logger logInternal\nINFO: Winstone shutdown successfully\nApr 21, 2016 4:46:08 PM winstone.Logger logInternal\nSEVERE: Container startup failed\njava.io.FileNotFoundException: /usr/java/jboss/standalone/deployments/jenkins.war/war/META-INF/MANIFEST.MF (No such file or directory)\n    at java.io.FileOutputStream.open(Native Method)\n    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)\n    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)\n    at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:280)\n    at winstone.HostConfiguration.<init>(HostConfiguration.java:83)\n    at winstone.HostGroup.initHost(HostGroup.java:66)\n    at winstone.HostGroup.<init>(HostGroup.java:45)\n    at winstone.Launcher.<init>(Launcher.java:145)\n    at winstone.Launcher.main(Launcher.java:356)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n    at java.lang.reflect.Method.invoke(Method.java:606)\n    at Main._main(Main.java:307)\n    at Main.main(Main.java:98)\n
Run Code Online (Sandbox Code Playgroud)\n

S.S*_*ker 5

我认为这是一个与权限相关的问题。

我猜想用户和组所有者设置为与詹金斯尝试运行的用户不同的用户。尝试使用以下方法正确设置:

$sudo chown -R <jenkins_user><jenkins_group> /usr/share/java/jenkins/
Run Code Online (Sandbox Code Playgroud)