Comment installer le dernier NodeJS sur Debian Jessie?

29

Je viens d'installer NodeJS & NPM sur Debian Jessie en utilisant l'approche recommandée:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

Cependant, c'est une version assez ancienne (noeud v0.10.38 et npm 1.4.28).

Des suggestions sur la façon la plus simple d'installer des versions plus récentes, par exemple, actuellement le nœud est v0.12.4 et npm est 2.7.4? L'installation à partir des sources est-elle ma seule approche?

MrColes
la source

Réponses:

48

Un script de configuration est disponible pour Node.js (voir les instructions d'installation ):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs

Un petit commentaire: À mon humble avis, c'est une très mauvaise idée de curl | sudo bash. Vous exécutez un script que vous n'avez pas vérifié avec les privilèges root. Il est toujours préférable de télécharger le script, lire, vérifiez les commandes malveillantes, et après que , l' exécuter. Mais c'est juste mes deux cents.

L'installation peut être réalisée manuellement en quelques étapes en suivant la procédure d'installation manuelle :

  • Supprimer l'ancien PPA (le cas échéant)
  • Ajouter une clé SSH de dépôt de noeud
  • Ajouter un référentiel de nœuds à sources.list
  • mettre à jour la liste des packages et installer à l'aide de l'outil apt préféré
embik
la source
5
ops, utilisez-le, mais maintenant il y a setup_4.x... redo curl et apt-get ok?
Peter Krauss
3
Comme vous pourriez avoir besoin de la dernière version actuelle, je vous recommande de visiter leur site: github.com/nodesource/distributions .
seniorpreacher
Pourquoi ne lui feriez-vous pas confiance s'il provient d'une connexion sécurisée à partir de la même source que celle sur laquelle vous exécutez les binaires
@ acidzombie24 à droite, mais même si vous faites confiance au code pour ne pas être mauvais, il y a toujours la possibilité d'une erreur dans le script, ou un script obsolète, ou votre config étant un peu exotique. Ou peut-être que vous aimez commander vos sources.list d'une certaine manière et les scripts font autrement. Quoi qu'il en soit, je pense aussi que c'est une mauvaise pratique et les débutants (je ne vise pas l'OP mais en général) ne devraient pas être encouragés à le faire. Surtout lorsque l'exécution manuelle de l'action est beaucoup plus simple que l'examen du script.
Jérôme
12

Vous pouvez télécharger la dernière version de Node ( 4.2.2) à partir de leur site Web , au lieu d'utiliser le package fourni par Debian ( 0.12). Cela signifie également que vous disposez d'une version mise à jour de npm. Je n'ai eu aucun problème à le faire sur Jessie.

Téléchargez le à .tar.gzpartir de leur site Web et cddans ce répertoire (le nom du fichier est évidemment spécifique à mon téléchargement):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

Si vous regardez dans le dossier bin, vous verrez les binaires dont vous avez besoin pour le nœud et npm:

$ ls node-v4.2.2-linux-x64/bin 
node  npm

Maintenant, je renommerais le dossier en quelque chose d'un peu plus facile à suivre

$ mv node-v4.2.2-linux-x64 nodejs

Si vous n'êtes pas intéressé par la mise à jour du nœud, déplacez simplement ce dossier dans l'un de vos emplacements de bacs (j'utilise ~/bin) et ignorez l'étape suivante.

Si vous souhaitez pouvoir mettre à jour facilement la version de votre nœud, déplacez le nodejsdossier quelque part où vous pourrez en garder la trace ( ~/nodejspeut-être?). Ensuite, vous souhaitez créer un lien symbolique vers l'un de vos emplacements de bin afin que les binaires puissent être utilisés à partir de votre shell sans écrire le chemin complet.

En supposant que vous placez le dossier nodejs dans votre répertoire personnel, vous pouvez maintenant:

$ ln -s ~/nodejs ~/bin/nodejs

De toute évidence, cela peut aller à n'importe quel emplacement de bac que vous souhaitez. J'ai utilisé mon répertoire personnel pour qu'il ne soit disponible que pour moi, mais vous pouvez aussi facilement faire:

$ ln -s ~/nodejs /usr/local/bin/nodejs

Cela créera un lien symbolique du dossier nodejs de votre répertoire personnel vers le répertoire bin (ce qui signifie que toutes les mises à jour du répertoire de votre dossier personnel seront reflétées dans le dossier ailleurs via le lien symbolique ). Maintenant, vous voulez vous assurer que le dossier bin contenant le répertoire nodejs se trouve dans votre $PATHvariable d'environnement , alors ouvrez le ~/.profilefichier dans votre répertoire personnel. Vous souhaitez ajouter ceci au bas de ce fichier (en changeant le chemin, si vous ne l'avez pas utilisé ~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi

Cela vérifiera si le répertoire existe, et si c'est le cas, ajoutez-le à votre PATH. J'utilise zshdonc je viens de mettre à jour une ligne dans ~/.zshrc:

export PATH="$HOME/bin/nodejs/bin:$PATH"

Fermez votre terminal et rouvrez-le, puis tapez ce qui suit pour vérifier:

$ node -v
v4.2.2

$ npm -v
2.14.7

En créant le lien sym, cela signifie désormais qu'à l'avenir, vous pourrez en télécharger un nouveau .tar.gzsur le site Web de Nodejs, l'extraire vers ~/nodejset les fichiers binaires disponibles dans votre $PATH variable d'environnement seront automatiquement mis à jour.

Luc
la source
Celui-ci a fonctionné pour moi car il a également donné un npm de travail.
artfulrobot
4

dans mon cas, j'ai exécuté les commandes shell recommandées:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

le problème était que le script bash n'a pas mis à jour mon épinglage APT, donc apt-get a installé l'ancien paquet Debian par défaut à partir de la source debian.org et non à partir de nodesource.com

vérifiez que c'est le problème avec apt-cache policy nodejs. vous devriez voir quelque chose comme Candidate: 6.10.2-1nodesource1~jessie1et nonCandidate: 0.10.29~dfsg-2

pour définir la priorité des broches sur nodeource, ajoutez un fichier /etc/apt/preferences.d/appelé nodeou autre avec ce contenu:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

enregistrer et exécuter apt-get cache update. puis réessayez apt-cache policy nodejs. si le candidat semble correct, installez comme d'habitudeapt-get install nodejs

georgiecasey
la source
apt-get cache updateest revenu E: Invalid operation cachealors j'ai couru sudo aptitude update.
user394
2

Vous pouvez suivre la documentation officielle de node.js pour installer la dernière version avec le gestionnaire de packages.

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

En exécutant ce dernier, le nœud v7.5.0 et npm v4.1.2 ont été installés sur mon système. Les alias nodeet nodejsont été activés pour Node automatiquement.

mrkvon
la source