在这个 Linux 服务器上,我有一个名为 "myuser" 的用户。 对于这个用户,当我回显路径时,我得到以下结果:
/home/myuser/bin:/home/myuser/.local/bin:/home/myuser/.nvm/versions/node/v6.11.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
有一个 Node 应用程序,当我手动部署时运行:
npm i
它起作用。
现在,我安装了Jenkins。 我正在尝试安装的Jenkins项目位于:
/var/lib/jenkins/workspace/test
该构建正在执行一个shell脚本。在那个窗口中,我输入了:
#!/bin/bash
npm i
使用Jenkins构建时,我遇到了这个问题:
[test] $ /bin/bash /tmp/jenkins756533162549346948.sh
/tmp/jenkins756533162549346948.sh: line 3: npm: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE
如果我只写:
echo $PATH
在 Jenkins shell 中,我得到了这个结果:[test] $ /bin/sh -xe /tmp/jenkins5067097808572366507.sh
+ echo /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin
[test] $ /var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/6.11.1/bin/node /tmp/jenkins8733250738704177758.js
Finished: SUCCESS
如您所见,我安装了nodejs插件。然而,在使用Jenkins shell时,无法找到npm甚至node。我该如何让Jenkins知道npm/node的位置?我尝试在shell中先写入以下内容:
$PATH=/home/myuser/.nvm/versions/node/v6.11.1/bin
但仍然没有成功。