我无法让Jenkins使用" npm"命令来自"执行shell" (在" Build"步骤下)。
我正在尝试设置一个新的Jenkins实例(前一个实例的副本)。我刚刚导入旧作业,现在正在安装这些作业所依赖的各种服务(例如maven,nodejs,ansible等)。
我无法获得nodejs和npm,尤其是设置。
当我输入命令" npm install"在命令行上,我得到以下内容:
uws@9.14.0 install /var/lib/jenkins/workspace . . .
. . .
Binary is fine
added 1282 packages in 36.424s
当我尝试使用Jenkins执行shell运行相同的命令时,我得到以下内容:
+ npm install
/tmp/jenkins7750702649955218109.sh: line 2: npm: command not found
Build step 'Execute shell' marked build as failure
为什么我可以从命令行访问此命令,但不能访问Jenkins?
我检查了一些事情:
- "节点"的路径和" npm"都在路上。至少"快捷方式"在路径上(这在之前的Jenkins实例中有效)。
- 节点和npm二进制文件具有root:root所有权,但其安全设置为(当前)755(或-rwxr-xr-x)。
- 我安装了nodejs插件。不知道如何使用它,但它的设置与以前的Jenkins实例上的设置相匹配。两个实例都使用execute shell(而不是任何特殊的Jenkins工具)来运行" npm"命令,虽然只有旧版本有效。
那么,我还应该检查一下我不是吗? Jenkins需要什么来访问" npm"命令?