初識 apt-get 和 nvm
apt-get
-
是什么
在各個平臺都有相關的包管理工具,比如 ubuntu 下面有apt-get
,centos 下面有yum
,mac 下面有brew
等,它們都是安裝軟件的非常方便的利器,主要用于自動從互聯網的軟件倉庫中搜索、安裝、升級、卸載軟件或操作系統 - 如何使用 apt-get 安裝 node
$ sudo apt-get install nodejs
$ sudo apt-get install npm
這里,因為使用 apt-get
安裝的 node 的包管理工具 npm
并沒有初始安裝,所以需要安裝 npm
- 查看安裝版本
- 查看 node 版本
$ node --version
v6.3.0
- 查看 npm 版本
$ npm --version
3.10.3
在查看版本號時,也可以通過 -v
命令查看,比如: node -v
,npm -v
- 怎么使用 node
- 進入 node 環境
$ node
>
或
$ nodejs
>
通過 >
可以看出現在已經進入 node 環境
- 運行 js 文件,例如運行 hello.js
$ nodejs hello.js
或
$ node hello.js
nvm
-
是什么
nvm是一個開源的 Node 版本管理器,通過簡單的 bash 腳本來管理、切換多個 Node.js 版本,使用nvm
可以安裝官網最新版本之前的任意版本,可以任意切換不同版本 - 如何使用 nvm 安裝 node
- 首先我們需要安裝 nvm
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
- 接下來查看一下 node 有哪些版本可以安裝
$ nvm ls-remote
v6.1.0
v6.2.0
v6.2.1
v6.2.2
v6.3.0
....
- 下載所需要的 node 版本,比如說我們需要
v6.3.0
版本
$ nvm install v6.3.0
- **查看安裝版本和使用 node 的方法 和
apt-get
相同,這里不再復述 ** - 使用 nvm 切換 node 版本
- 查看當前已安裝版本
$ nvm ls
-> v6.3.0
default -> v6.3.0
node -> stable (-> v6.3.0) (default)
stable -> 6.3 (-> v6.3.0) (default)
iojs -> N/A (default)
lts/* -> lts/argon (-> N/A)
lts/argon -> v4.6.0 (-> N/A)
從運行結果可以看出,當前電腦上的 node 版本只有一個 v6.3.0
,并且當前正在使用的版本也是 v6.3.0
,默認的版本同樣也是 v6.3.0
- 例如要使用
v4.4.5
版本,首先安裝該版本(可以先使用nvm ls-remote
查看所有版本)
$ nvm install v4.4.5
- 使用
use
命令切換至該版本
$ nvm use v4.4.5
Now using node v4.4.5 (npm v2.15.5)
- 設置默認版本
$ nvm alias default v6.3.0
如果沒有設置 default
默認開機 node 是沒有啟動的,所以可能會報找不到 node 命令的錯誤,因此我們需要設置默認版本
- 卸載某個 node 版本,例如卸載
v4.4.5
版本
$ nvm uninstall v4.4.5
個人建議
- 個人平時使用 node 時,習慣使用 node 命令,畢竟少輸個 “js”,節省時間
- 安裝 node 時,node 各個版本特性不同,對于 Node.js 這個版本帝而言,很多項目需要使用不同版本的 node 開發機器上可能要同時存在幾個 Node.js 的大版本,所以建議大家使用 nvm 方式安裝 node
兩種方式安裝的具體差異
-
安裝版本
- apt-get
不是最新版本(在linux下默認源中沒有 node 的程序),安裝的版本有且只有一個,而且執行sudo命令的時候,是以超級管理員身份運行,以后你用npm是以管理員權限執行的,所以別人就可以更改系統文件,會造成安全性問題,具體細節可聽下回分解
- apt-get
- nvm
可以供我們選擇要安裝的版本,并且則解決了多版本共存、切換問題,但在安裝之前,請確認本機以前的安裝包已經被卸載 -
安裝目錄(終端通過
whereis node
查看) - apt-get
/usr/local/bin/node
- nvm
/home/xxx/.nvm/versions/node/v6.3.0/bin/node
nvm 使用 node 切換版本內部實現原理
實現原理:在一個目錄下存放多個版本的目錄,在切換時候將相應的版本路徑加入 PATH 中,從而實現版本的切換,例如從 v6.3.0
切換到 v4.4.5
具體流程如下:
- 查看一下當前使用的 node 版本
$ node --version
v6.3.0
- 現在來看一下 node 環境變量
$ echo $PATH
/home/guoru/.nvm/versions/node/v6.3.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
通過環境變量我們可以看出,現在使用的 node 版本是 v6.3.0
- 使用
nvm use v4.4.5
切換版本,并且查看環境變量
$ nvm use v4.4.5
Now using node v4.4.5 (npm v2.15.5)
$ echo $PATH
/home/guoru/.nvm/versions/node/v4.4.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
可以看出環境變量已經將 PATH 路徑中的版本改為 v4.4.5
版本了
總結
如果您是一個前端開發人員,建議您使用 nvm
來安裝 node,如果您是一個普通的用戶,建議您使用 apt-get
安裝 node 。