为什么在Ubuntu 16.04上安装节点6.x实际安装节点4.2.6?
这些是我在Ubuntu 16.04上安装节点的步骤:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install -y npm
这是官方说明:
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
执行此操作后,运行nodejs --version
将返回v4.2.6
。
因为我使用setup_6.x
我假设安装了一个以6
开头的版本?
我想也许setup_6.x
应该是setup_6.2.1
,但该页面返回404,请参阅:
https://deb.nodesource.com/setup_6.x (那里有一个页面)
https://deb.nodesource.com/setup_6.2.1 (返回404)
如何在Ubuntu 16.04上安装最新的稳定版节点?
编辑:
这些是运行sudo apt-get install -y nodejs
:
sudo apt-get install -y nodejs Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18 linux-headers-4.4.0-18-generic linux-headers-4.4.0-21 linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic linux-signed-image-4.4.0-21-generic python-configobj python-pycurl python-pyexiv2 python-pyexiv2-doc Use 'sudo apt autoremove' to remove them. The following NEW packages will be installed: nodejs 0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade. Need to get 0 B/3,162 kB of archives. After this operation, 13.2 MB of additional disk space will be used. Selecting previously unselected package nodejs. (Reading database ... 329473 files and directories currently installed.) Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ... Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ... Processing triggers for doc-base (0.10.7) ... Processing 1 added doc-base file... Registering documents with scrollkeeper... Processing triggers for man-db (2.7.5-1) ... Setting up nodejs (4.2.6~dfsg-1ubuntu4) ... update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
编辑:
apt-cache policy nodejs
:
apt-cache policy nodejs nodejs: Installed: 4.2.6~dfsg-1ubuntu4 Candidate: 4.2.6~dfsg-1ubuntu4 Version table: *** 4.2.6~dfsg-1ubuntu4 500 500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages 100 /var/lib/dpkg/status
核心原因是安装脚本无法正常运行。 因此,由于支持这一点的OP的更新数据,apts从未见过来自NodeSource存储库的数据,因为脚本没有正确配置它。
因此,脚本可能没有找到您的发行版,或者在配置存储库时可能已经搞砸了,或者可能存在网络中断,或者其中任何一个原因导致其中断并且没有完成其工作。
您看到版本4.x
安装的事实意味着脚本没有正确地完成其工作,因此脚本不一定有问题。 这只是意味着我们必须以更难的方式做到这一点。
我应该指出:脚本实际上并没有进行任何安装 – 它只是确定你所使用的Debian / Ubuntu版本,并为它配置存储库以从中获取数据。 安装部分实际上是您手动运行的
sudo apt-get install
步骤。
我们不是依赖脚本,而是可以按照老派的方式做脚本:手工,自己,设置存储库配置并安装NodeJS。
这是使这项工作的手动方式,它基本上是脚本的function(步骤4除外,这是为了确保您获得准确的版本数据):
-
创建一个新文件:
/etc/apt/sources.list.d/nodesource.list
您需要使用
sudo
创建此文件,但在创建文件时,请将其放入其中:deb https://deb.nodesource.com/node_6.x xenial main deb-src https://deb.nodesource.com/node_6.x xenial main
然后,保存文件。 (对于较新的Node版本,将
node_6.x
替换为node_7.x
或node_8.x
等) -
从Nodesource下载存储库的GPG签名密钥 。 否则,
apt-get update
可能会出现NO_PUBKEY
错误:curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
-
手动运行
sudo apt-get update
。这将刷新来自nodesource repo的数据,因此
apt
知道存在更新的版本。如果您收到
NO_PUBKEY
GPG错误,请返回步骤2 -
检查
apt-cache policy nodejs
输出。这不是由脚本完成的,但是你想确保在输出中看到一个类似这样的条目(尽管如果你不使用6.x作为版本字符串,版本可能会有所不同;我们唯一的事情是关心的是通过nodesource提供的新版本号:
Version table: 6.2.1-1nodesource1~xenial1 500 500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages 4.2.6~dfsg-1ubuntu4 500 500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
如果您没有看到这样的条目,只看到4.2.6,请重新开始。 否则,继续。
-
安装
nodejs
二进制文件。 现在您的系统上已经确认6.x可用,您可以安装它:sudo apt-get install nodejs
-
nodejs --version
现在应该在输出上显示v6.2.1
或类似内容(只要它以v6.
开头v6.
那么你在版本6上;如果你使用的是比6更新的版本,这可能是更高的版本号,但是只要它不是4.2.6,你应该好好去)。
我有一个旧版本的节点。 我需要做的只是清除旧的:
sudo apt-get purge nodejs npm
然后,根据相应版本的需要,将v=6
替换为7,8,9(请参阅官方安装说明 ):
v=6 curl -sL https://deb.nodesource.com/setup_$vx | sudo -E bash -
(确保你已经安装了卷发。)
最后,
sudo apt-get install -y nodejs
Boom,节点的最新版本。
对于Ubuntu 16.04.2版本的用户(从Thomas’post稍微改变并感谢他)
1.打开软件更新程序
2.设置
3.其他软件
4.添加源但记得选择以后的所有新源选项exp:
deb https://deb.nodesource.com/node_6.x xenial main deb-src https://deb.nodesource.com/node_6.x xenial main
5.reload
6. sudo apt-get update
7. apt-cache policy nodejs
//获取新版本表并检查源是否已完成设置
8. sudo apt install nodejs
9. nodejs --version
现在一切都设定…….
警告:不要从更新程序面板更改nvidia卡的Linux默认驱动程序….系统将崩溃…. !!!
我遇到过同样的问题。 但在我的情况下,我不得不升级我的curl命令。 您可以通过使用-S选项运行来查看该问题。
curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
这显示了这个问题
curl: (1) Protocol "https" not supported or disabled in libcurl gpg: no valid OpenPGP data found.
所以我通过运行以下内容解决了这个问题。
sudo apt-get install curl sudo apt autoremove curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - sudo apt-get install nodejs
通过添加@Thomas Ward回答那些在使用https URL安装nodejs 8.x时遇到问题的人或通过显示证书错误代码保持安装v4.2.6尝试添加以下行的nodesource.list
deb http://deb.nodesource.com/node_8.x xenial main deb-src http://deb.nodesource.com/node_8.x xenial main
下一步:运行
sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -
然后
sudo apt-get install -y nodejs
这将解决您的问题,安装更新的nodejs版本和npm版本,因为它解决了我的Ubuntu 16.04 LTS …
我找到了这个链接,它帮助我安装Nodejs8____https://www.ubuntuupdates.org/ppa/nodejs_7.x。 我不得不加入Nojs8https,因为它说我需要成为第二级才能发布两个以上的链接。 我认为这是随机的,但无论如何。
在安装之前,我运行了命令:apt-get remove –purge version nodejs
要validation您没有安装任何版本,请运行:apt-cached policy nodejs和/或nodejs –version
我只需将7更改为8就可以安装Node js 8,最终得到了8.1.3版。 为此,我运行了上面发布的那个页面中的命令,但这里仍然是命令:
下载存储库密钥:
curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
然后设置存储库::
sudo sh -c "echo deb https://deb.nodesource.com/node_7.x zesty main \ > /etc/apt/sources.list.d/nodesource.list" sudo apt-get update sudo apt-get install nodejs
同样,如果你想要节点js 8,你可以将该命令行中的数字7更改为8并且瞧!
我试图按照https://github.com/nodesource/distributions上的说明进行版本8,但这对我不起作用。 我直接在浏览器中访问了https://deb.nodesource.com/setup_8.x ,并将脚本复制并粘贴到我的系统nodejs.sh上的文件中。 然后我执行了以下命令
sudo -E bash nodejs.sh apt-cache policy nodejs sudo apt-get install nodejs
命令apt-cache显示两个版本,首选安装8.您可以删除安装文件。 不确定为什么在本地复制文件有帮助,因为curl命令正确地显示了脚本。