Wie installiere ich den neuesten NodeJS auf Debian Jessie?

29

Ich habe gerade NodeJS & NPM unter Debian Jessie mit dem empfohlenen Ansatz installiert:

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

Es ist jedoch eine ziemlich alte Version (Knoten v0.10.38 & npm 1.4.28).

Irgendwelche Vorschläge zum einfachsten Weg, neuere Versionen zu installieren, z. B. ist derzeit node v0.12.4 und npm 2.7.4? Ist die Installation von der Quelle aus mein einziger Ansatz?

MrColes
quelle

Antworten:

48

Für Node.js steht ein Setup-Skript zur Verfügung (siehe Installationsanleitung ):

# 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

Ein kleiner Kommentar: Meiner bescheidenen Meinung nach ist das eine sehr schlechte Idee curl | sudo bash. Sie führen ein Skript aus, das Sie nicht mit Root-Berechtigungen überprüft haben. Es ist immer besser , das Skript zum Herunterladen, lesen Sie es, überprüfen auf schädliche Befehle und nach , dass , führen Sie es. Aber das sind nur meine zwei Cent.

Die Installation kann manuell in wenigen Schritten nach dem manuellen Installationsverfahren durchgeführt werden :

  • Altes PPA entfernen (falls zutreffend)
  • Fügen Sie den Node Repo SSH-Schlüssel hinzu
  • Fügen Sie Node Repo zu hinzu sources.list
  • Aktualisieren Sie die Paketliste und installieren Sie sie mit dem bevorzugten apt-Tool
embik
quelle
5
ops, benutze es, aber jetzt gibt es setup_4.x... mache es wieder gut und mache es wieder gut?
Peter Krauss
3
Da Sie möglicherweise die neueste, aktuelle Version benötigen, empfehle ich Ihnen, die folgende Website zu besuchen: github.com/nodesource/distributions .
Seniorpreacher
Warum sollten Sie es nicht vertrauen, wenn es über eine sichere Verbindung von derselben Quelle kommt, von der aus Sie Binärdateien
@ acidzombie24 richtig, aber selbst wenn Sie dem Code vertrauen, dass er nicht böse ist, besteht immer die Möglichkeit, dass das Skript fehlerhaft ist oder dass ein veraltetes Skript oder Ihre Konfiguration etwas exotisch ist. Oder vielleicht möchten Sie Ihre sources.list auf irgendeine Weise bestellen und die Skripte tun es anders. Jedenfalls denke ich auch, dass es eine schlechte Übung ist und Anfänger (ich ziele nicht auf das OP, aber im Allgemeinen) sollten nicht ermutigt werden, dies zu tun. Insbesondere wenn die Aktion manuell ausgeführt wird, ist dies viel einfacher als das Überprüfen des Skripts.
Jérôme
12

Sie können die neueste Version von Node ( 4.2.2) von der Website herunterladen , anstatt das von Debian bereitgestellte Paket ( 0.12) zu verwenden. Dies bedeutet auch, dass Sie eine aktualisierte Version von npm haben. Bei Jessie hatte ich keine Probleme damit.

Laden Sie das .tar.gzvon ihrer Website und cdin dieses Verzeichnis herunter (der Name der Datei ist offensichtlich spezifisch für meinen Download):

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

Wenn Sie in den Ordner bin schauen, sehen Sie die Binärdateien, die Sie für node und npm benötigen:

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

Jetzt würde ich den Ordner in etwas umbenennen, das etwas einfacher ist, um den Überblick zu behalten

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

Wenn Sie nicht daran interessiert sind, den Knoten auf dem neuesten Stand zu halten, verschieben Sie diesen Ordner einfach in einen Ihrer Bin-Speicherorte (den ich verwende ~/bin), und überspringen Sie den nächsten Schritt.

Wenn Sie Ihre Knotenversion problemlos aktualisieren möchten, verschieben Sie den nodejsOrdner an einen Ort, an dem Sie ihn verfolgen können ( ~/nodejsvielleicht?). Anschließend möchten Sie einen Symlink zu einem Ihrer Binärspeicherorte erstellen , damit die Binärdateien in Ihrer Shell verwendet werden können, ohne den vollständigen Pfad anzugeben.

Angenommen, Sie legen den Ordner nodejs in Ihrem Home-Verzeichnis ab, dann können Sie jetzt Folgendes tun:

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

Dies kann natürlich zu jedem beliebigen Lagerplatz gehen. Ich habe mein Home-Verzeichnis verwendet, damit es nur mir zur Verfügung steht. Sie können aber auch einfach Folgendes tun:

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

Dadurch wird ein Symlink vom nodejs-Ordner in Ihrem Ausgangsverzeichnis zum bin-Verzeichnis erstellt (dh, alle Aktualisierungen des Verzeichnisses in Ihrem Ausgangsverzeichnis werden über den symbolischen Link in dem Ordner an anderer Stelle wiedergegeben ). Jetzt möchten Sie sicherstellen, dass sich der bin-Ordner, der das nodejs-Verzeichnis enthält, in Ihrer $PATHUmgebungsvariablen befindet. Öffnen Sie daher die ~/.profileDatei in Ihrem Ausgangsverzeichnis . Sie möchten dies am Ende dieser Datei hinzufügen (ändern Sie den Pfad, wenn Sie ihn nicht verwendet haben ~/bin/):

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

Dadurch wird überprüft, ob das Verzeichnis vorhanden ist, und wenn dies der Fall ist, fügen Sie es Ihrem PATH hinzu. Ich benutze zshalso ich habe gerade eine Zeile aktualisiert in ~/.zshrc:

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

Schließen Sie Ihr Terminal und öffnen Sie es erneut. Geben Sie dann Folgendes ein, um dies zu überprüfen:

$ node -v
v4.2.2

$ npm -v
2.14.7

Wenn Sie den Sym-Link erstellen, können Sie künftig einen neuen .tar.gzLink von der Nodejs-Website herunterladen, in diesen extrahieren ~/nodejsund die Binärdateien, die Ihnen in Ihrer $PATH Umgebungsvariablen zur Verfügung stehen, werden automatisch aktualisiert.

Luke
quelle
Dieser funktionierte für mich, da es auch eine funktionierende Npm gab.
Artfulrobot
4

In meinem Fall habe ich die empfohlenen Shell-Befehle ausgeführt:

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

Das Problem war, dass das Bash-Skript meine APT-Fixierung nicht aktualisiert hat, so dass apt-get das alte Standard-Debian-Paket von der debian.org-Quelle und nicht von nodesource.com installiert hat

Überprüfen Sie, ob dies das Problem ist apt-cache policy nodejs. du solltest sowas sehen Candidate: 6.10.2-1nodesource1~jessie1und nichtCandidate: 0.10.29~dfsg-2

In der Einstellstift Priorität nodesource, fügen Sie eine Datei in /etc/apt/preferences.d/genannt nodeoder was auch immer mit diesem Inhalt:

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

Speichern und ausführen apt-get cache update. dann apt-cache policy nodejsnochmal probieren . Wenn der Kandidat richtig aussieht, installieren Sie ihn wie gewohntapt-get install nodejs

Georgiecasey
quelle
apt-get cache updatezurückgekehrt, E: Invalid operation cachedamit ich lief sudo aptitude update.
user394
2

Sie können der offiziellen Dokumentation zu node.js folgen , um die neueste Version mit Package Manager zu installieren.

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

Auf meinem System wurden Knoten v7.5.0 und npm v4.1.2 installiert. Beide nodeund nodejsAliase wurden automatisch für Node aktiviert.

mrkvon
quelle