下载二进制压缩包:

cd /usr/local/src
wget https://nodejs.org/dist/v8.12.0/node-v8.12.0-linux-x64.tar.xz

解压缩包:

xz -d node-v8.12.0-linux-x64.tar.xz
tar -xvf node-v8.12.0-linux-x64.tar.xz
mv node-v8.12.0-linux-x64 /usr/local/node

到此为止,nodejs 就算是安装好了一半,可以执行如下命令测试:

/usr/local/node/bin/node -v 

上面虽说可以使用了,可是每次运行都加上 /usr/local/node/bin/ 有点难受,所以我们接下来配置环境变量,打开 /etc/profile ,在最下面加入如下代码:

vim /etc/profile

# set for nodejs
export NODE_HOME=/usr/local/node
export PATH=$NODE_HOME/bin:$PATH

是刚刚配置的环境变量生效:

source /etc/profile

验证环境变量是否配置好:

node -v 
npm -v

执行以上操作后,nodejs 算是安装好了,但是当试图安装一个全局包的时候你可能会遇到 EACCES 错误。这个错误表明你没有当前 npm 用来存储全局包命令目录的写权限。可以通过下面两种方式之一来修复解决这个问题:

方式一:修改 npm 默认目录的权限

找到 npm 目录路径:

npm config get prefix

大多数系统,目录一般是 /usr/local

警告: 如果路径显示的是 /usr,直接采用方式二:修改 npm 默认目录的位置 修改 npm 目录的拥有者为当前用户:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

使用这个命令同时修改了 npm 下面子目录和其他工具命令(lib/node_modules,bin,and share)

方式二:修改 npm 默认目录的位置

有时候并不希望修改 npm 默认目录的拥有者,因为这样可能会导致一些其他不可预期的问题,所以我们可以采用修改 npm 目录位置。 我这里使用的是用户根目录下面创建隐藏目录:

创建一个目录用于全局包安装:

mkdir ~/.npm-global

配置 npm 使其使用新的目录:

npm config set prefix '~/.npm-global

打开或者新建~/.profile 文件,并添加目录路径

export PATH=~/.npm-global/bin:$PATH

更新系统变量:

source ~/.profile

测试,下载一个 cnpm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

引文:https://ld246.com/article/1538286938073