找不到Jenkins NodeJSPlugin节点命令 [英] Jenkins NodeJSPlugin node command not found

查看:232
本文介绍了找不到Jenkins NodeJSPlugin节点命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

构建外壳为:

echo $PATH
which node
ls -l /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node_6.10.2/bin
node -v

结果是:

/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node_6.10.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
/var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node_6.10.2/bin/node
-rwxrwxr-x 1 jenkins jenkins 30503659 Apr  4 09:01 node
lrwxrwxrwx 1 jenkins jenkins       38 Apr  9 13:09 npm -> ../lib/node_modules/npm/bin/npm-cli.js
/tmp/hudson8026342196338345661.sh: line 1: node: not found

为什么找不到节点命令?

Why cannot it find the node command?

我正在与docker一起运行官方的詹金斯映像.

I'm running it with docker the official jenkins image.

詹金斯:2.46.1-高山

jenkins:2.46.1-alpine

推荐答案

issue中所建议JENKINS-34815(NodeJS插件无法安装全局NPM软件包),请检查您ldd -l /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node_6.10.2/bin/node

请参见

使用当前的docker jenkins:2.32.1-alpine和插件nodejs:1.0时,在使用节点7.4时再次发生这种情况:
即使在PATH中找到并且可执行,Alpine也无法运行二进制文件:

With current docker jenkins:2.32.1-alpine and plugin nodejs:1.0 this happens again, when using node 7.4:
Alpine just can't run the binary even if it is found in PATH and is executable:

+ /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs7/bin/node -v

/var/jenkins_home/jobs/busx1/workspace@tmp/durable-a76d6fd5/script.sh: line 1: /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs7/bin/node: not found

之所以发生这种情况,是因为该图像不包含nodejs所需的libstdc++.so.6:

    /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)
    libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)
    librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)

Error loading shared library libstdc++.so.6: No such file or directory (needed by /var/jenkins_home/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/nodejs7/bin/node)
    libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)
    libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7f0ac773e000)
    libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)
    libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x55ae0ad53000)

换句话说,node: not found并不意味着未安装node(它是可执行文件,可在$PATH中找到).
这意味着未找到node依赖项之一.

In other words, node: not found does not mean node is not installed (it is, it is executable and found in the $PATH).
It means one of node dependencies is not found.

这篇关于找不到Jenkins NodeJSPlugin节点命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆