一. 要升级nodejs,使用npm的方法:本文地址:http://www.04007.cn/article/1209.html,未经许可,不得转载.
test@userwqeq npm cache clean -f npm WARN using --force Recommended protections disabled. test@userwqeq npm cache clean --force npm WARN using --force Recommended protections disabled. #清缓存、删除项目所有依赖 npm cache clean --force npm cache verify #下方运行成功 test@userwqeq npm cache verify #执行npm install -g n仍然不行 test@userwqeq npm install -g n changed 1 package, and audited 2 packages in 2s test@userwqeq n --help bash: n: command not found #网上的方法:--force 依然不行 test@userwqeq npm install -g n --force npm WARN using --force Recommended protections disabled.关于npm 的命令解释:
npm cache add 查这个命令主要是 npm 内部使用,但是也可以用来手动给一个指定的 package 添加缓存。
npm cache clean 删除缓存目录下的所有数据。从 npm@5 开始,为了保证缓存数据的有效性和完整性,需要加上 --force 参数。
npm cache verify 验证缓存数据的有效性和完整性,清理垃圾数据。
二、使用nvm的方法:本文地址:http://www.04007.cn/article/1209.html,未经许可,不得转载.
因为还是没有成功,于是考虑使用nvm来升级nodejs。了解到nvm是一个很好用的nodejs和npm管理工具,并且可以方便在多版本nodejs之间切换使用。可以从这里看到最新版本和详细介绍 https://github.com/creationix/nvm/blob/master/README.md#install-script 准备下载安装nvm本文地址:http://www.04007.cn/article/1209.html,未经许可,不得转载.
test@userwqeq wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh fatal: unable to access 'https://github.com/nvm-sh/nvm.git/': Could not resolve host: github.com #指定hosts。docker容器中访问不了宿主机的DNS似的 test@userwqeq cat /etc/hosts 20.205.243.166 github.com test@userwqeq test@userwqeqdocker cp install.sh jenkins:/home/ # 进入容器执行 install.sh完成安装。但是执行nvm ls-remote返回N/A test@userwqeq nvm ls-remote N/A test@userwqeq cat /etc/hosts 3.13.31.214 latest.nvm.sh 104.20.22.46 nodejs.org
执行nvm ls-remote一直是返回N/A,估计又是哪个地址不能访问导致的。最后想离线下载nodejs安装文件到服务器上安装,官网地址如下:https://nodejs.org/zh-cn/download 在执行wget的时候发现这个域名也请求不到,那很可能nvm ls-remote返回N/A的原因就是因为这个访问不通,于是到hosts里添加了下面的这个nodejs.org域名解析。再次进行尝试果然成功。这下nodejs升级成功了。本文地址:http://www.04007.cn/article/1209.html,未经许可,不得转载.
上面nodejs虽然升级成功,但并不代表在jenkins里可以正常使用,执行完上面的工作,我在jenkins里使用nvm时报错: nvm: not found 进行过多次调试,jenkins里也是使用的root用户,但是就是执行不了nvm命令,最后是把系统中的PATH变量值在jenkins的全局系统设置里填写了PATH才成功。但我想这里最好的办法应该是能直接在jenkins的命令里执行nvm切换node的版本,以免对其它的发布job造成影响。所以我尝试了各自的jenkins任务执行命令里进行path设置以让不同的项目使用不同的node版本来进行编译,成功完成。本文地址:http://www.04007.cn/article/1209.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/1209.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |