Pourquoi l'installation du noeud 6.x sur Ubuntu 16.04 installe-t-elle réellement le noeud 4.2.6?

78

Voici mes étapes pour installer le noeud sur 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

quelles sont les instructions officielles:

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

Après cela, en cours d'exécution nodejs --versionretourne v4.2.6.

Comme je l'ai utilisé, setup_6.xje supposais qu'une version commençant par 6serait installée?

Je pensais que cela setup_6.xdevrait peut -être être le cas setup_6.2.1, mais cette page renvoie un 404, voir:

https://deb.nodesource.com/setup_6.x (il y a une page à cet endroit)

https://deb.nodesource.com/setup_6.2.1 (retourne un 404)

Comment installer la dernière version stable de node sur Ubuntu 16.04?

Modifier:

Voici les résultats après avoir exécuté 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

Modifier:

Résultats de 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
utilisateur1063287
la source
Inclure une copie de la sortie de apt-cache policy nodejss'il vous plaît dans votre question en tant que modification.
Thomas Ward
Le fait que le système ait utilisé NodeJS 4.x signifie que vous avez exécuté des scripts incorrects ou que le référentiel n’a pas été correctement ajouté au système. En suivant les étapes décrites dans la page à laquelle vous vous connectez, j’ai pu installer le dernier logiciel installé. En l'état, il peut donc y avoir un certain nombre de problèmes. Si vous pouvez fournir des apt-cachedonnées pour que nous puissions voir ce que votre ordinateur voit exister dans les mises en pension, nous pourrons peut-être vous aider davantage.
Thomas Ward
@ThomasW. - Ajout de données à poster.
user1063287
1
Merci pour les données mises à jour. On dirait que le script n'a pas fait ce qu'il était supposé faire pour une raison quelconque. Je précise que c'est le cas et la manière "manuelle" de faire ce que le script fait, dans ma réponse ci-dessous. Vous pouvez l'utiliser pour obtenir la dernière version de NodeJS. Ce n'est pas aussi simple et agréable qu'un script, mais c'est vraiment ce que le script fait en son cœur.
Thomas Ward
1
@pipe Heureusement, il y a des gens comme moi qui exécutent des scripts dans des ordinateurs virtuels destructibles afin que nous puissions voir ce que ça fait. C'est comme ça que j'ai dérivé les instructions dans ma réponse, afin que nous puissions faire ce que ce 'script' fait manuellement heh.
Thomas Ward

Réponses:

136

La raison principale est que le script d'installation n'a pas fonctionné correctement. Par conséquent, grâce aux données mises à jour de l'OP qui le supporte, les données du référentiel NodeSource n'ont jamais été vues aptcar elles n'étaient pas correctement configurées par le script.

Par conséquent, le script n'a peut-être pas trouvé votre distribution, il s'est peut-être égaré lors de la configuration du référentiel, il peut y avoir eu une interruption du réseau ou l'une des mille raisons pour lesquelles elle a été perturbée et n'a pas fonctionné correctement.

Le fait que vous voyiez la version 4.xen cours d'installation signifie que le script n'a pas bien fait son travail. Le script n'est donc pas nécessairement en cause. Cela signifie simplement que nous devons potentiellement faire cela de manière plus difficile.

Je dois préciser que le script n’effectue aucune installation; il ne fait que déterminer la version de Debian / Ubuntu à laquelle vous vous trouvez et configurer le référentiel à partir duquel il récupère les données. La partie installation est en fait l' sudo apt-get installétape que vous avez exécutée à la main.


Plutôt que de compter sur le script, nous pouvons faire ce que le script fait à l'ancienne: manuellement, configurer la configuration du référentiel et installer NodeJS.

Voici la manière manuelle de faire fonctionner cela, et c'est essentiellement ce que fait le script (sauf pour l'étape 4, qui consiste à s'assurer que vous obtenez des données de version précises):

  1. Créer un nouveau fichier: /etc/apt/sources.list.d/nodesource.list

    Vous aurez besoin de créer ce fichier avec sudo, mais quand vous créez le fichier, mettez-le à l'intérieur:

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-src https://deb.nodesource.com/node_6.x xenial main
    

    Ensuite, sauvegardez le fichier. (remplacez node_6.xpar node_7.xou node_8.x, etc. pour les versions de noeud plus récentes)

  2. Téléchargez la clé de signature GPG à partir de Nodesource pour le référentiel . Sinon, vous risquez d’obtenir des NO_PUBKEYerreurs avec apt-get update(utilisez wgetcette commande si curln’est pas installé, et si aucun n’est installé, installez l’une d’elles):

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. Exécuter manuellementsudo apt-get update .

    Ceci actualise les données du référentiel de noeudsource afin de aptsavoir si une version plus récente existe.

    Si vous obtenez une NO_PUBKEYerreur GPG, revenez à l'étape 2.

  4. Vérifiez la apt-cache policy nodejssortie.

    Cela ne se fait pas par le script, mais vous voulez vous assurer que vous voyez une entrée qui dit quelque chose comme ceci dans la sortie (bien que la version puisse être différente si vous n'utilisez pas 6.x comme chaîne de version; la seule chose que nous l’important est qu’il existe un numéro de version plus récent fourni par 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
    

    Si vous ne voyez pas de telles entrées et que vous ne voyez que 4.2.6, recommencez. Sinon, continuez.

  5. Installez le nodejsbinaire. Maintenant que vous avez confirmé que 6.x est disponible sur votre système, vous pouvez l'installer:sudo apt-get install nodejs

  6. nodejs --versiondevrait maintenant apparaître v6.2.1ou similaire sur la sortie (tant que cela commence par la v6.version 6, il peut s'agir d'un numéro de version plus élevé si vous utilisez une version plus récente que 6, mais tant que vous n'êtes pas 4.2.6. devrait être bon pour aller).

Thomas Ward
la source
4
Suit ceci à un T et tous les points correspondent au comportement décrit. Merci beaucoup.
user1063287
1
@ user1063287 de rien! J'espère que cela aidera les autres si le script ne fonctionne pas pour eux non plus! Profitez de la dernière version de NodeJS!
Thomas Ward
Oh, c’est la raison pour laquelle je n’ai pas le noeud 6 quand je le pensais, et les programmes se plaignent de la version 6. Merci!
Chat
Merci, j'ai bien travaillé. J'ai remarqué dans mon /etc/apt/sources.list.d/nodesource.listcommentaire qu'il y avait un commentaire à propos de son désactivation. Elle contenait également l'ancienne version 0.x et j'étais à 4.x avec le nœud -v. Nice instructions claires.
DaveStSomeWhere
1
Etant donné que curl n’est pas installé par défaut, une alternative consiste à utiliser wgetwget -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
gerardw le
38

J'ai eu une version plus ancienne de noeud. Tout ce que j'avais à faire était de purger l'ancien:

sudo apt-get purge nodejs npm

Et ensuite, en remplaçant 6 en v=67, 8, 9 selon les besoins pour les versions respectives (voir les instructions d'installation officielles ):

v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(assurez-vous que curl est installé.)

Et enfin,

sudo apt-get install -y nodejs

Boom, dernière version du noeud.

codemode
la source
4
Ou, https://deb.nodesource.com/setup_7.xpour le noeud v7. Voir le guide officiel
ryenus
2
Mine installe toujours la v4.2.6
Freek Nortier
1
@FreekNortier J'avais également ce problème sous Linux Mint 18. J'ai pu installer la version 11 après avoir purgé et exécuté sudo apt-get install python-software-properties. J'ai trouvé cette suggestion sur tecadmin et codebind .
Ben
4

Pour l'utilisateur de la version Ubuntu 16.04.2 (avec un peu de changement de Thomas'post et merci pour lui)

1.Ouvrez le programme de mise à jour du logiciel

2. réglage

3. autre logiciel

4.Ajoutez les sources mais n'oubliez pas de choisir toutes les nouvelles sources plus tard, exp:


deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

5. recharger

6sudo apt-get update

7. apt-cache policy nodejs// pour obtenir la nouvelle table de versions et vérifier si la source est configurée

8sudo apt install nodejs

9nodejs --version

MAINTENANT tout est prêt .......

attention: ne changez pas votre pilote par défaut Linux pour votre carte nvidia à partir du panneau de mise à jour .... le système sera bloqué .... !!!

Jason Liu
la source
Il installe v4.2.6.
Prashant Prabhakar Singh
agréable! travaillé pour moi
ejaenv
3

J'ai eu le même problème. Mais dans mon cas, j'ai dû mettre à niveau ma commande curl. Vous pouvez voir le problème en exécutant avec l'option -S.

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

Qui a montré le problème

curl: (1) Protocol "https" not supported or disabled in libcurl
gpg: no valid OpenPGP data found.

J'ai donc résolu ce problème en lançant ce qui suit.

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
zatopek
la source
résolu le problème
SadeepDarshana
1

En ajoutant @Thomas Ward, répondez à ceux qui rencontrent des problèmes lors de l’installation de nodejs 8.x avec l’URL https ou le maintien du code sur les installations v4.2.6 en affichant une erreur de certificat. Essayez d’ajouter nodesource.list avec les lignes ci-dessous.

deb http://deb.nodesource.com/node_8.x xenial main
deb-src http://deb.nodesource.com/node_8.x xenial main

prochaine étape: Run

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

ensuite

sudo apt-get install -y nodejs

Cela résoudra votre problème en installant la version mise à jour de nodejs et la version npm qui résolvent le mien pour Ubuntu 16.04 LTS ...

Sunilsmith
la source
0

J'ai trouvé ce lien et cela m'aide à installer Nodejs8____https: //www.ubuntuupdates.org/ppa/nodejs_7.x. Je devais rejoindre Nojs8https sur cette ligne car il était dit que je devais être au niveau deux pour pouvoir publier plus de deux liens. Je pense que c'est aléatoire mais peu importe.

Avant de l’installer, j’exécutais la commande suivante: apt-get remove --purge version nodejs

Pour vérifier qu'aucune version n'est installée sur votre ordinateur, exécutez la commande suivante: apt-cached policy nodejs et ou nodejs --version

J'ai pu installer Node js 8 en changeant simplement le numéro 7 en 8 et je me suis retrouvé avec la version 8.1.3. Pour ce faire, j'ai exécuté les commandes qui se trouvent dans cette page, mais voici quand même les commandes:

Téléchargez la clé du référentiel avec:

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

Puis configurez le référentiel ::

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

Encore une fois, si vous voulez le noeud js 8, vous pouvez changer le numéro 7 de cette ligne de commande en 8 et le tour est joué!

Victor Espinoza
la source
0

J'ai essayé de suivre les instructions sur https://github.com/nodesource/distributions pour la version 8, mais cela n'a pas fonctionné pour moi. J'ai visité https://deb.nodesource.com/setup_8.x directement dans le navigateur, puis copié et collé le script dans un fichier sur mon système nodejs.sh . Puis j'ai exécuté les commandes suivantes

sudo -E bash nodejs.sh
apt-cache policy nodejs
sudo apt-get install nodejs

La commande apt-cache a montré deux versions avec une préférence pour l'installation 8. Vous pouvez supprimer le fichier d'installation par la suite. Vous ne savez pas pourquoi la copie locale du fichier a aidé parce que la commande curl montrait le script correctement.

Bryan Toth
la source
0

Hé les gars, si vous avez Ubuntu 16, suivez ces instructions. Cela a fonctionné pour moi parfaitement. Fournissez également le mot de passe de votre compte chaque fois que demandé dans ce processus.

  1. sudo su -c "echo 'deb https://deb.nodesource.com/node_8.x xenial main' >> /etc/apt/sources.list.d/nodesource.list"

  2. sudo su -c "echo" deb-src https://deb.nodesource.com/node_8.x xenial main '>> /etc/apt/sources.list.d/nodesource.list "

  3. sudo apt-get update

  4. apt-cache policy nodejs Vérifiez si les versions répertoriées ont le nœud 8

  5. sudo apt-get install nodejs

  6. nodejs -v vérifie la version du noeud installée

Cela installera avec succès la version 8 de nodejs sur votre système. Si vous souhaitez une autre version, changez la version aux étapes 1 et 2, elle fonctionnera correctement.

éclair d'arc
la source