用nvm来更新nodejs版本或使多版本共存
用nvm管理nodejs
公司开发机上用的node.js版本还是 v0.4.9,想升级到最新,于是用了nvm(https://github.com/creationix/nvm)。
按照官网说法,安装nvm,得先有git,自己用的是centos5.4时还没有,所以先在centos上安装git。由于centos上默认yum源是没有git的,所以想通过yum install简单安装的希望破灭。Google一把,找到了安装的命令:
yum -y install zlib-devel openssl-devel perl cpio expat-devel gettext-devel wget http://git-core.googlecode.com/files/git-1.7.7.5.tar.gz ./configure –prefix=/usr/local/git make make install
可是又出现yum源错误,mirror里找不到 (没有问题的可以略过) 见最后解决方法
配好yum后,就可以再安装git所依赖的库了
然后再安装好git后,再安装nvm就很快了,可直接执行官网上提供的命令:
wget -qO- https://raw.github.com/appleboy/nvm/develop/install.sh | sh
完后,运行nvm, 提示nvm command not found,再次google和官网上搜,以及自己破天荒实验所得,得把. ~/.nvm/nvm.sh 加到 ~/.bashrc 下, 在 ~/.profile下要加上
mesg n
[[ -s /home/frontend/.nvm/nvm.sh ]] && . /home/frontend/.nvm/nvm.sh # This loads NVM
注:/home/frontend/ 为用户目录
之后运行nvm,就会出来
可以按照提示输入命令,比如,我想用最新的基础稳定版,则直接执行 nvm install stable,查看已安装的node版本,输入 nvm ls,非常方便。看下我目前装了两个版本:
保留了以前的v0.4.9,以免新版本出现问题,可以采用 npm use ,在版本间来回自由切换。为了保证每次打开新的shell运行窗口时,系统默认采用的node版本,可以使用nvm alias default 0.4 命令。
另: 我在centos上运行node的v0.8.17时,出现以下提示
这是由于CentOS 5自带的glibc库版本过低,我们无法用直接使用新版的Node
运行nodejs 0.8.17报错,具体可以看这里解决: (http://www.noanylove.com/2012/11/centos-5-install-node-js/)
第二步用yum安装git所需的包,出现yum源安装错误的解决方案:
file://media/CentOS_5.2_Final/repodata/repomd.xml:[Error 5] OSError:[Errno 2]
Trying other mirror.
Error: Cannot retrieve repository metadata(repomd.xml) for repository: c5-media.
Please verify its path and try again
继续google之,只能重新配理yum,修改/etc/yum.repos.d/CentOS-Base.repo:
内容为[base]
name=CentOS-5 - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever5&arch=$basearch&
repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
#released updates
[update]
name=CentOS-5 - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=updates
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
#packages used/produced in the build but not released
[addons]
name=CentOS-5 - Addons
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=addons
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
#additional packages that may be useful
[extras]
name=CentOS-5 - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=extras
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5 - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=centosplus
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
#contrib - packages by Centos Users
[contrib]
name=CentOS-5 - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=4&arch=$basearch&repo=contrib
baseurl=http://ftp.sjtu.edu.cn/centos/5.3/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
话不择多,thanks all!!!