在线上服务器上无管理员权限下升级NodeJS版本

时间:2023-03-08 22:03:56
在线上服务器上无管理员权限下升级NodeJS版本

前言

最近发现一个线上机器的问题,是因为node版本过低导致的,线上机器的node版本还是0.x版,遂打算升级node版本。
但是发现常规的npm包的n模块无法使用,提示没有权限创建文件夹,导致node升级失败。
最后联系相关同学得知升级node必须要联系线上机器管理的SRE或是运维来升级。
在联系无果的情况下发现可以通过其他方法来升级node。

解决方案

没有nvm,node版本0.12太低了
在线上服务器上无管理员权限下升级NodeJS版本

没有管理员权限,也无法使用n模块来升级node
在线上服务器上无管理员权限下升级NodeJS版本

安装nvm

wget -qO- https://raw.github.com/creationix/nvm/v0.4.0/install.sh | sh

安装完成后无法直接使用报错。
在线上服务器上无管理员权限下升级NodeJS版本

虽然已经提示“Appending source string to /home/sankuai/.bash_profile”但是依然无法使用nvm命令。
按照提示应该重启terminal,但是也可不重启terminal。
需要执行source命令或点命令,在当前shell进程中执行sh脚本,以达到直接使设定生效的目的。
在线上服务器上无管理员权限下升级NodeJS版本

最后执行“nvm install 6.2”命令即可成功升级Node版本
在线上服务器上无管理员权限下升级NodeJS版本

Node升级后退出terminal后再次进入Node版本变更问题

安装后退出再进入发现node版本变了
在线上服务器上无管理员权限下升级NodeJS版本

解决方法

nvm有alias命令可设定默认版本。
可通过 nvm alias default v6.2.2 来锁定默认版本为指定版本号来解决
在线上服务器上无管理员权限下升级NodeJS版本

附录

  1. Linux下的brew工具 http://linuxbrew.sh/
    不过需要手动修改.bashrc 或 .zshrc文件,最后再source一遍使设定生效
  2. Node.js 安裝與版本切換教學 (for MAC) http://icarus4.logdown.com/posts/175092-nodejs-installation-guide
  3. 利用n和nvm管理Node的版本 http://weizhifeng.net/node-version-management-via-n-and-nvm.html
  4. source命令详解1 http://www.ahlinux.com/shell/23595.html
  5. source命令详解2 http://blog.csdn.net/thl789/article/details/6543836
  6. nvm 设置默认版本失败 https://segmentfault.com/q/1010000004858041