美文网首页
Jenkins之Npm: Command not found

Jenkins之Npm: Command not found

作者: WikiPine | 来源:发表于2022-01-04 16:25 被阅读0次

    题记

    系统中原本已安装了基于nvm的node环境,故想直接使用此环境下的npm以及yarn的命令
    注意:docker安装的jenkins可不必继续往下看,可能参考的价值不大,本文的安装处理是非docker下的,docker下的之前遇到过很多问题,抛弃了~

    问题

    1 npm command not found
    2 yarn command not found

    排查过程

    首先我调整了jenkins的权限,使得在命令行下是可以执行 npm 和 yarn 的,这样子可以排除一些问题,如权限不够的问题
    jenkins默认是不能通过su进入的,需要调整一下
    参考:https://www.jianshu.com/p/de3ae4a0ecbc

    cat /etc/passwd
    # 找到 jenkins:x:988:982:Jenkins Automation Server:/var/lib/jenkins:/bin/false
    # 修改为 jenkins:x:988:982:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
    # 这样子就能su jenkins了,但是会发现有点奇怪,显示的是 bash-4-*的样子
    # 执行下面的命令就可以了
    vim ~/.bash_profile
    export PS1='[\u@\h \W]\$ '
    source ~/.bash_profile
    

    调整后,会发现,在jenkins的用户下,是无法执行npm 和 yarn,至此问题确定了一大半了

    方案

    通过排查,之前安装的nvm是在 /root/.nvm目录下,那么jenkins的权限是无法调用的,先要迁移安装的目录
    处理参考:https://blog.csdn.net/zzhdzjzs/article/details/115604767 (非root用户也能执行命令)

    mv /root/.nvm /usr/local/src
    vi ~/.bashrc
    # NVM_DIR 修改为 NVM_DIR="/usr/local/src/.nvm"
    source ~/.bashrc
    

    上述排查后,直接在jenkins里面使用npm还是不行的,需要配置一下环境变量
    参考:https://blog.csdn.net/weixin_39805802/article/details/110672154

    echo $PATH
    # 复制这一串信息到系统设置的全局变量里面
    
    image.png

    至此 npm 的命令是可以直接在sh中使用了

    但是yarn还是会报错,提示 权限不足,不能打开 /root/.yarnrc
    就很崩溃,后面直接用了绝对路径来处理了

    /usr/local/src/.nvm/versions/node/v14.16.1/bin/yarn install
    

    结语

    网上找到的大多数是是说什么 #!/bin/bash -l 这样子来处理,只能说,各家的问题各家不一样,也和当前的系统环境有关系,这篇文章也只能做参考,比较没怎么了解这一块的原理,只是刚好项目部署需要用到,就搞了

    相关文章

      网友评论

          本文标题:Jenkins之Npm: Command not found

          本文链接:https://www.haomeiwen.com/subject/uxgqcrtx.html