Debian

無法在 Debian Stretch 上安裝最新的 NodeJS

  • September 3, 2018

我執行 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.2nodejs包。

4.8.2 版本是通過aptmain 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版本然後應用更改。

引用自:https://unix.stackexchange.com/questions/412984