Debian
無法在 Debian Stretch 上安裝最新的 NodeJS
我執行 Debian 9.3。我去NodeJS網站查看如何在我的機器上安裝 NodeJS v9.X 並執行提供的程式碼。
curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash - sudo apt-get install -y nodejs
但是終端吐出了這條消息:
Reading package lists... Done Building dependency tree Reading state information... Done nodejs is already the newest version (4.8.2~dfsg-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
我的機器被 NodeJS v4.8.2 和 NPM v1.4.21 卡住了。
如何升級到最新的 NodeJS 和 NPM?
更新
我遵循@GAD3R 的指示。它仍然安裝 v4.8.2。這是我在執行 GAD3R 的命令然後執行
sudo apt install nodejs
.Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: libuv1 The following NEW packages will be installed: libuv1 nodejs 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/3,524 kB of archives. After this operation, 14.5 MB of additional disk space will be used. Do you want to continue? [Y/n] y Selecting previously unselected package libuv1:amd64. (Reading database ... 141225 files and directories currently installed.) Preparing to unpack .../libuv1_1.9.1-3_amd64.deb ... Unpacking libuv1:amd64 (1.9.1-3) ... Selecting previously unselected package nodejs. Preparing to unpack .../nodejs_4.8.2~dfsg-1_amd64.deb ... Unpacking nodejs (4.8.2~dfsg-1) ... Setting up libuv1:amd64 (1.9.1-3) ... Processing triggers for libc-bin (2.24-11+deb9u1) ... Processing triggers for man-db (2.7.6.1-2) ... Setting up nodejs (4.8.2~dfsg-1) ... update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
當我執行
update-alternatives --config nodejs
時,終端列印update-alternatives: error: no alternatives for nodejs
==
當我跑步時
apt-cache policy nodejs
,我得到這個……nodejs: Installed: 4.8.2~dfsg-1 Candidate: 4.8.2~dfsg-1 Version table: 9.3.0-1nodesource1 500 500 https://deb.nodesource.com/node_9.x stretch/main amd64 Packages 8.9.3~dfsg-2 1 1 http://ftp.us.debian.org/debian experimental/main amd64 Packages 6.12.0~dfsg-2 500 500 http://ftp.us.debian.org/debian unstable/main amd64 Packages *** 4.8.2~dfsg-1 990 990 http://ftp.us.debian.org/debian stretch/main amd64 Packages 100 /var/lib/dpkg/status
==
我跑了
sudo /etc/apt/preferences
,直到現在才存在,並在裡面寫了這個:Package: * Pin: release n=experimental Pin-Priority: 100 Package: * Pin: release n=unstable Pin-Priority: 100 Package: * Pin: release n=stable Pin-Priority: 500
我重新執行了 GAD3R 文章中的命令,但 Debian 仍然安裝了 v4.8.2
nodejs
包。
4.8.2 版本是通過
apt
從main repo安裝的。跑:
apt purge nodejs apt install lsb-release apt install -y nodejs
驗證安裝的
nodjs
版本:node --version v9.3.0
npm
版本:npm --version 5.5.1
問題出在 pin 優先級,將穩定版本 pin 到
500
Package: * Pin: release n=experimental Pin-Priority: 100
不穩定:
Package: * Pin: release n=unstable Pin-Priority: 100
和馬厩:
Package: * Pin: release n=stable Pin-Priority: 500
問題通過以下方式解決:
打開 synaptic ,搜尋 nodejs ,按 CTRL + E 然後選擇
nodsource1
版本然後應用更改。