Why does installing node 6.x on Ubuntu 16.04 actually install node 4.2.6?
Solution 1:
The core reason is that the setup script didn't run correctly. Therefore, thanks to the updated data from the OP which supports this, the data from the NodeSource repository was never seen by apt
because it was not properly configured by the script.
The script, therefore, may not have found your distribution, or it may have messed up when configuring the repository, or there may have been a network interruption, or any of a thousand reasons it was disrupted and didn't do its job.
The fact you are seeing version 4.x
getting installed means that the script didn't do its job right, so the script is not necessarily at fault. This just means we have to potentially do this a harder way.
I should point out: the script doesn't actually do any installing - all it does is determine the Debian/Ubuntu version you're on, and configure the repository for it to get data from. The installation part is actually the
sudo apt-get install
step you ran by hand.
Also of note: this will remove the
npm
package but that's becausenodejs
with this upstream packaging will includenpm
with it - no need for thenpm
package.
Rather than rely on the script, we can do what the script is doing the old-school way: by hand, ourselves, set up the repository configuration and install NodeJS.
Here's the manual way of making this work, and it is basically what the script does (except for Step 4, which is to make sure you are getting accurate version data):
-
Create a new file:
/etc/apt/sources.list.d/nodesource.list
You'll need to create this file with
sudo
, but when you create the file, put this inside it:deb https://deb.nodesource.com/node_6.x xenial main deb-src https://deb.nodesource.com/node_6.x xenial main
Then, save the file. (replace
node_6.x
withnode_7.x
ornode_8.x
, etc. for newer Node versions) -
Download the GPG Signing Key from Nodesource for the repository. Otherwise, you may get
NO_PUBKEY
errors withapt-get update
(usewget
in this command ifcurl
isn't installed, and if neither are installed, install one of them):curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
-
Manually run
sudo apt-get update
.This refreshes the data from the nodesource repo so
apt
knows a newer version exists.If you get a
NO_PUBKEY
GPG error, then go back to Step 2 -
Check
apt-cache policy nodejs
output.This is not done by the script, but you want to make sure you see an entry that says something like this in the output (though the version might be different if you are not using 6.x as the version string; the only thing we care about is that there's a newer version number provided via 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
If you do not see entries like this, and only see 4.2.6, start over. Otherwise, proceed.
Install the
nodejs
binary. Now that you have confirmed 6.x is available on your system, you can install it:sudo apt-get install nodejs
nodejs --version
should now showv6.2.1
or similar on output (as long as it starts withv6.
you're on version 6 then; this may be a higher version number if you're using a newer version than 6 but as long as it is not 4.2.6 you should be good to go).
Solution 2:
I had an older version of node. All I needed to do was to purge the old one:
sudo apt-get purge nodejs npm
And then, replacing 6 in v=6
with 7, 8, 9 as needed for the respective versions (see official installation instructions):
v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -
(be sure you have curl installed.)
And lastly,
sudo apt-get install -y nodejs
Boom, latest version of node.
Solution 3:
For the Ubuntu 16.04.2 version user(with a little bit change from Thomas'post and thank for him )
1.open the software updater
2.setting
3.other software
4.Add the sources but remember to choose all new sources option later 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
//to get the new version table and check if the source is setup done
8.sudo apt install nodejs
9.nodejs --version
NOW It is all set.......
warning: do not change your Linux default driver for your nvidia card from the updater panel ....the system will be crashed....!!!