Wie installiere ich NodeJS 4 mit apt?

Antworten:

75

Anweisungen wurden von hier entnommen: https://github.com/nodesource/distributions

wget -qO- https://deb.nodesource.com/setup_4.x | sudo bash -

und dann:

sudo apt-get install nodejs

Hier sind die Systemversionen:

ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ lsb_release -r
Release:    15.04
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ node -v
v4.0.0
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ npm -v
2.14.2
Jarsever
quelle
@jarserver - "Die folgenden Pakete haben nicht erfüllte Abhängigkeiten: nodejs: Depends: rlwrap, aber es kann nicht installiert werden. E: Probleme können nicht behoben werden, Sie haben fehlerhafte Pakete festgehalten." - Fehler bei der Installation von apt-get. Wie kann man das beheben?
Kumar Sambhav
@ KumarSambhav klingt, als ob Ihre Paketdatenbank in einem fehlerhaften Zustand ist. Durchsuchen Sie die Site, um festzustellen, wie ein fehlerhafter Zustand behoben werden kann.
Battlemidget
Dies funktioniert unter Ubuntu 15.10 nicht. Es wird immer die Version 0.10.25 installiert (niedrigere Version als das OP, daher habe ich keine Ahnung, was los ist ...)
HankScorpio
@HankScorpio Es hört sich so an, als ob das Apt-Repo nicht aktualisiert wurde. Befolgen Sie die Anweisungen zur manuellen Installation ( github.com/nodesource/distributions#manual-installation ) und überprüfen Sie, ob dies behoben ist.
Jarsever
Ja, das war das Problem. Einige GPG-Schlüssel (was auch immer sie sind) fehlten, so apt-get updatedass jedes Mal ein Fehler auftrat. Früher habe ich y-ppa-managerdas Problem behoben und jetzt habe ich die neueste Version von NodeJS 4.
HankScorpio
37

Der Node Version Manager verfügt immer über den neuesten Stand

Ich bin der festen Überzeugung, dass die Installation von Node mit Node Version Manager die beste Option unter Ubuntu ist, wenn Sie es auf einem Computer installieren, auf dem Sie die Entwicklung durchführen möchten (anstelle eines Produktionsservers).

Wenn Sie über die offiziellen Repositorys installieren, werden Sie mit etwas furchtbar Veraltetem konfrontiert. Sie können jederzeit eine PPA hinzufügen, haben aber dennoch unordentliche Berechtigungen, wenn für die globale Installation von Modulen über npm Administratorrechte erforderlich sind.

Mit NVM wird alles in Ihrem privaten Ordner gespeichert (dies ist nicht erforderlich sudo), und Sie können mehrere Versionen von Node (einschließlich 4.0) installieren und problemlos zwischen diesen wechseln.

Installation mit NVM

Entnommen aus den NVM-Installationsanweisungen :

Holen Sie sich die neueste Version von NVM (müssen Sie möglicherweise sudo apt-get install curlzuerst herunterladen ):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

Weisen Sie Ihre Shell an, dies zu verwenden nvm(möglicherweise möchten Sie dies hinzufügen, ~/.bashrcdamit es in Zukunft automatisch geschieht):

source ~/.nvm/nvm.sh

Installieren Sie dann die neueste Knotenversion:

nvm install 4.0

Und sagen Sie nvm, welche Version von Node Sie verwenden möchten:

nvm use 4.0

Möglicherweise möchten Sie auch die nvm use 4.0Leitung zu Ihrer hinzufügen ~/.bashrc, damit Sie nicht jedes Mal, wenn Sie Ihr Terminal starten, eine Knotenversion auswählen müssen.

Wenn Sie jetzt prüfen which node, sollte es Ihnen einen Pfad zu dem Knoten geben, der in Ihrem Home-Ordner ausführbar ist. Laufen node --versionsollte Ihnen sagen, dass Sie laufen v4.0.0.

Michael Martin-Smucker
quelle
6
Ich glaube nicht, dass der Kommentar zu den unordentlichen Berechtigungen korrekt ist. Ich installiere Node von Nodesource Apt Repo und kann Node-Module in meinem lokalen Ausgangsverzeichnis ausführen und installieren (einschließlich der Option -g global). Alles, was Sie tun müssen, ist die Aktualisierung von ~ / .npmrc, um Ihr Präfixverzeichnis zu definieren.
Battlemidget
3
Ah, das ist ein sehr fairer Punkt. Ich bin immer noch ein Fan von nvm für den Aspekt der Versionsverwaltung, aber wenn das nicht Ihr Ding ist, ~/.npmrcscheint das Festlegen eines Präfixes definitiv die richtige Art zu sein, mit Berechtigungen für globale Module umzugehen.
Michael Martin-Smucker
Ich glaube, der "veraltete" Hinweis zu den offiziellen Repositories, in der Antwort ist ein bisschen ... veraltet ;-) Die offiziellen Repositories unterstützen jetzt jede öffentlich veröffentlichte Version in einem unterstützten Release-Zug - es gibt Repos für Version 6, 7 und sogar 8, und ist seit mindestens meiner Antwort unten (10/15) so gewesen
Guss
36

Mit kudus to @jarsever abonniere ich persönlich das Paradigma " curl | sh " nicht.

Wenn Sie das gleiche Unbehagen verspüren wie ich, wenn Sie aufgefordert werden, beliebigen Text aus dem Internet in den Shell-Prozess eines Root-Kontos zu leiten, sollten Sie dies mit dem gleichen Effekt versuchen, jedoch mit (etwas) weniger Angst und Unsicherheit und Zweifel:

version=4
apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
apt-add-repository 'deb https://deb.nodesource.com/node_${version}.x precise main'
apt-get update
apt-get install nodejs

Ich glaube, der Prozess sollte klar sein, und Sie können dies auch über Ubuntus Software Properties UI tun.

Guss
quelle
Hat dies einen Nachteil? Scheint die beste Option ...
Catskul
6
Es ist mehr als eine Zeile und ermöglicht es Ihnen, etwas über Ihr System zu lernen? ... Manche Leute mögen das nicht, ich denke, nur so kann ich das curl|shPhänomen erklären .
Guss
3
Neben den Informationen zum Paket-Manager Ihres Betriebssystems ist dies auch ein Sicherheitsproblem. curl|shRuft ein Skript von einem Server ab und führt es direkt in einer Shell aus. Ich persönlich vertraue Nodesource, aber es ist keine große Gewohnheit, sich darauf einzulassen. unix.stackexchange.com/questions/46286/…
blanket_cat
Und da fragst du, ob du es hineinpfeifen sollst sudo -E bash. Es läuft als root. Ich empfehle Ihnen dringend, das Skript zu lesen und zu verstehen, wenn Sie es aus dem Netz in eine Root-Shell leiten möchten.
blanket_cat
1
Im Allgemeinen gehen Sie mit der Installation eines Deb-Pakets das gleiche Risiko ein, wie wenn Sie das Internet in eine Root-Shell leiten. Davon abgesehen impliziert einer, dass Sie Ihr System verstehen, der andere impliziert, dass Sie dies nicht tun - und das ist ein großer Unterschied.
Guss
0

Ich verwende gerne nodeenv von pypi ( https://pypi.python.org/pypi/nodeenv ), installiere das Paket mit pip, richte dann einen "node / virtualenv" ein und fordere es auf, schnell und einfach eine vorgefertigte Version zu installieren . Paul

Paul
quelle
-1

Das hat bei mir funktioniert

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install 
curl https://www.npmjs.org/install.sh | sh

Quelle: https://gist.github.com/isaacs/579814

Johnjullies
quelle
1
Die Frage bezieht sich speziell auf die Installation von NodeJS mit Apt .
David Foerster