题记
系统中原本已安装了基于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 这样子来处理,只能说,各家的问题各家不一样,也和当前的系统环境有关系,这篇文章也只能做参考,比较没怎么了解这一块的原理,只是刚好项目部署需要用到,就搞了
网友评论