Jenkins&NodeJS插件 – 权限被拒绝的错误

我设法在Raspberry Pi上设置了一个Jenkins实例,并且在我最终击中了这个绊脚石之前安装了NodeJS插件:

Started by an SCM change Building in workspace /var/lib/jenkins/jobs/Test Project/workspace > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url localhost:/GITREPO/test # timeout=10 Fetching upstream changes from localhost:/GITREPO/test > git --version # timeout=10 > git fetch --tags --progress localhost:/GITREPO/test +refs/heads/*:refs/remotes/origin/* > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision 8e6edee9fdc1e8bf754dc1a27f46c1dea3531144 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 8e6edee9fdc1e8bf754dc1a27f46c1dea3531144 > git rev-list 8eaf1bc6a0be837100e476b33bec559b33e9997f # timeout=10 [workspace] $ /bin/sh -xe /tmp/hudson5445359267004163031.sh + echo /usr/local/bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games /usr/local/bin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games + node --version v0.10.32 + grunt --version grunt-cli v0.1.13 + java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) [workspace] $ /tmp/hudson1009495610900642950.js FATAL: command execution failed java.io.IOException: Cannot run program "/tmp/hudson1009495610900642950.js" (in directory "/var/lib/jenkins/jobs/Test Project/workspace"): error=13, Permission denied at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042) at hudson.Proc$LocalProc.<init>(Proc.java:244) at hudson.Proc$LocalProc.<init>(Proc.java:216) at hudson.Launcher$LocalLauncher.launch(Launcher.java:802) at jenkins.plugins.nodejs.tools.DecoratedLauncher.launch(DecoratedLauncher.java:49) at jenkins.plugins.nodejs.tools.NpmPackagesBuildWrapper$2.launch(NpmPackagesBuildWrapper.java:88) at hudson.Launcher$ProcStarter.start(Launcher.java:380) at hudson.Launcher$ProcStarter.join(Launcher.java:387) at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:84) at jenkins.plugins.nodejs.NodeJsCommandInterpreter.perform(NodeJsCommandInterpreter.java:42) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533) at hudson.model.Run.execute(Run.java:1745) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:89) at hudson.model.Executor.run(Executor.java:240) Caused by: java.io.IOException: error=13, Permission denied at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:187) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023) ... 18 more Build step 'Execute NodeJS script' marked build as failure Finished: FAILURE 

我没有做任何特别的事情,这是确保NodeJS插件工作的初始testing:

 var sys = require('sys'); sys.puts('NodeJS Test'); sys.puts('***********'); sys.puts('Hello World'); 

如果我以Jenkins用户身份login,并且自己运行它,

 jenkins@raspberrypi:~$ node test.js NodeJS Test *********** Hello World jenkins@raspberrypi:~$ 

我已经浏览了互联网,似乎找不到任何具体的东西; 很确定它不具体的文件权限(工作区目录有全部用户的完全访问权限)

我有同样的问题。 对我来说,它是jenkins中“全局configuration”下的nodejs插件configuration。 我的“节点”应用程序(符号链接)位于/usr/local/bin/node 。 我的“安装目录”被设置为/usr/local/bin/ 。 我也改变了/usr/local/并开始工作! 🙂

请注意,这是您使用nodejs插件的“自动安装”function的时候。

我有几乎与jenkins的权限相同的问题,

问题是Jenkins无法在文件夹中写入它没有权限,所以我将nodejs插件自动安装在/var/lib/jenkins/tools/

我在这里更详细地描述了:

Jenkins和NodeJS插件 – 权限被拒绝错误= 13