Ubuntu中安裝最新 Node.js 和 npm


背景

為了安裝GNU QEMU Eclipse,需要安裝比較新的nodejs

$ npm install --global xpm@latest
▌ ╢░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
WARN engine xpm@0.5.0: wanted: {"node":">7.7.0"} (current: {"node":"4.2.6","npm":"3.5.2"})

參考:Ubuntu18安裝最新版nodejsUbuntu16.04安裝最新版nodejs

更新ubuntu軟件源

# Ubuntu 16.04 TLS,執行以下命令:
sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update


# Ubuntu 18.04 TLS,執行以下命令:
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update

安裝NodeJS和NPM

安裝命令

# Ubuntu 16.04 TLS,執行以下命令:
sudo apt-get install nodejs
sudo apt install nodejs-legacy
sudo apt install npm


# Ubuntu 18.04 TLS,執行以下命令:
sudo apt-get install nodejs
sudo apt install libssl1.0-dev nodejs-dev node-gyp npm

配置路徑

修改prefix、cache路徑

mkdir nodejs的安裝路徑/node_cache
mkdir nodejs的安裝路徑/node_global
npm config set prefix "nodejs的安裝路徑/node_global"
npm config set cache "nodejs的安裝路徑/node_cache"

在自己的環境變量中添加

#node
export NODE_HOME=nodejs的安裝路徑
export PATH=$NODE_HOME/bin:$PATH

#npm
export NODE_PATH=nodejs的安裝路徑/node_global/node_modules

更新npm的包鏡像源

方便快速下載

sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list

安裝n管理器(用於管理nodejs版本)

sudo npm install n -g

# 安裝最新的nodejs(stable版本)
sudo n stable

驗證安裝

使用下面的命令查看NodeJS和NPM的版本,若正確安裝的話都可以看到相關的版本號信息。

sudo node -v
sudo npm -v

安裝完最好重啟一下:sudo reboot或者重啟shell

Q & A

驗證安裝查看的版本號時,加sudo和不加sudo的命令,結果不一樣

這應該是終端或遠程連接終端的緩存問題,加sudo命令看到的是最新的版本號,不加sudo命令看到的是前一安裝版本的版本號,關閉相關終端或遠程連接終端,然后重新連接即可解決這個問題。

apt-get update找不到文件

// error code
W: The repository 'http://ppa.launchpad.net/chris-lea/node.js/ubuntu xenial Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://ppa.launchpad.net/chris-lea/node.js/ubuntu/dists/xenial/main/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

// A: 修改node相關文件:/etc/apt/sources.list.d/chris-lea-ubuntu-node_js-xenial.list
deb http://ppa.launchpad.net/chris-lea/node.js/ubuntu trusty main
deb-src http://ppa.launchpad.net/chris-lea/node.js/ubuntu trusty main

node -v異常

node -v
-bash: /usr/local/bin/node: Permission denied

sudo node -v
Segmentation fault (core dumped)

// A: 重新安裝nodejs
手動移除 /usr/local/lib/node_modules整個目錄
手動移除 /usr/local/bin/node
手動移除 /usr/local/bin/n
手動移除 /usr/local/bin/npm

Package 'software-properties-common' has no installation candidate異常

sudo apt-get install -y python-software-properties software-properties-common

E: Package 'python-software-properties' has no installation candidate

原因詳見 https://askubuntu.com/questions/422975/e-package-python-software-properties-has-no-installation-candidate?rq=1 ,調整為sudo apt-get install -y software-properties-common即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM