Wie installiere ich eine bestimmte Version von Node unter Ubuntu?

74

Ich möchte NodeJS Version 0.8.18 unter Ubuntu 12.04 installieren. Ich habe versucht, die neueste Version zu installieren und dann mithilfe von auf 0.8.18 zurückzukehren nvm, aber wenn ich meinen Code ausführe, gibt es anscheinend ein Problem mit den installierten Paketen und den beiden Versionen (neueste und 0.8.18). Da ich nicht weiß, wie ich dieses Problem lösen kann, habe ich den Computer von der Node-Installation befreit und überlegt, die Version, an der ich interessiert bin (v0.8.18), direkt zu installieren.

Masiar
quelle
nodejs.org/dist/v0.8.18 hat einige dist-Dateien, haben Sie diese ausprobiert?
Joachim Isaksson
Hallo, nicht wirklich. Ich mag Ubuntu- und Dist-Dateien nicht wirklich, daher weiß ich nicht einmal, wie ich sie verwenden soll. Trotzdem danke, ich überprüfe, wie es geht und ob ich sie verwenden kann!
Masiar
1
Es gibt eine API-Änderung von 0.8.x auf 0.10.x. Überprüfen Sie daher unbedingt die Änderungen. Auch nicht nur Knoten, sondern auch verschiedene Pakete expresshaben zB API-Änderungen.
user568109

Antworten:

39

Chris Lea hat 0,8,23 in seinem ppa repo.

Mit diesem Paket können Sie ein Repository zu apt-get hinzufügen: (Sie können dies auch manuell tun)

sudo apt-get install software-properties-common

Fügen Sie das Repository von Chris Lea hinzu:

sudo apt-add-repository ppa:chris-lea/node.js-legacy

Update apt-get:

sudo apt-get update

Installieren Sie Node.js:

sudo apt-get install nodejs=0.8.23-1chl1~precise1

Ich denke (zögern Sie nicht zu bearbeiten), die Versionsnummer ist optional, wenn Sie nur node.js-Legacy hinzufügen. Wenn Sie sowohl Legacy als auch ppa / chris-lea / node.js hinzufügen, müssen Sie höchstwahrscheinlich die Version hinzufügen.

Pickels
quelle
15
sudo apt-cache showpkg nodejs- Sie können diesen Befehl verwenden, um verfügbare Versionen sudo apt-get install npm
anzuzeigen
2
Wenn Sie neuere Versionen wie 0.11.x installieren möchten: (1) sudo apt-add-repository ppa:chris-lea/node.js-devel(2) Update: run sudo apt-get update(3 sudo apt-cache showpkg nodejs) Um die neuesten Pakete aufzulisten: (4) Zum Beispiel, um 0.11.14 zu installieren: sudo apt-get install nodejs=0.11.14-1chl1~trusty1Dies ist häufig der Fall Eine großartige Möglichkeit, Node mit Harmony-Unterstützung zu installieren. Denken Sie daran, das Flag --harmony zu verwenden, wenn Sie Node ausführen.
SilentSteel
57

Das nModul hat bei mir funktioniert.

Führen Sie diesen Code aus, um den Cache von npm zu löschen, n zu installieren und die neueste stabile Version von Node zu installieren:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

Siehe: http://www.hostingadvice.com/how-to/update-node-js-latest-version/
Und: https://www.npmjs.com/package/n

So installieren Sie eine bestimmte Version des Knotens:

sudo n 6.11.2

So überprüfen Sie welche Version:

node -v

Möglicherweise müssen Sie neu starten

Rimian
quelle
1
Kein großer Fan des Namens aus einem Buchstaben, aber diese Lösung funktioniert definitiv und ist trivial einfach!
aroth
2
Man könnte es immer alias machen : alias noonoonaanaanoonoo='n';) `
Rimian
Hat bei mir nicht funktioniert. Nach einiger Suche funktionierte eine ähnlich einfache Lösung wie folgt
FlorianH
38

Es ist möglich, mit using eine bestimmte Version von nodejs aus der offiziellen Distribution von nodejs zu installieren dpkg.

Die derzeit aktuelle Version 4.x ist beispielsweise 4.2.4, Sie können jedoch die vorherige Version 4.2.3 installieren.

curl -s -O https://deb.nodesource.com/node_4.x/pool/main/n/nodejs/nodejs_4.2.3-1nodesource1~trusty1_amd64.deb
sudo apt-get install rlwrap
sudo dpkg -i nodejs_4.2.3-1nodesource1~trusty1_amd64.deb
ddumbugie
quelle
1
Aus irgendeinem Grund funktionierte der Befehl curl bei mir nicht, daher habe ich stattdessen wget verwendet. Aber der gesamte Prozess hat gut funktioniert. Vielen Dank.
Ulysses Alves
16

NVM (Node Version Manager)

https://github.com/nvm-sh/nvm

Vorteile:

  • Ermöglicht die Verwendung mehrerer Node-Versionen und ohne Sudo

  • ist analog zu Ruby RVM und Python Virtualenv, die in Ruby- und Python-Communities allgemein als Best Practice gelten

  • Lädt nach Möglichkeit eine vorkompilierte Binärdatei herunter. Wenn nicht, lädt sie die Quelle herunter und kompiliert eine für Sie

Getestet in Ubuntu 17.10:

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
source ~/.nvm/nvm.sh
nvm install 0.9.0
nvm install 0.9.9
nvm use 0.9.0
node --version
#v0.9.0
nvm use 0.9.9
node --version
#v0.9.9

Für den speziellen Fall der neuesten Version des Langzeit-Supports (empfohlen, wenn Sie wählen können):

nvm install --lts
nvm use --lts
npm --version
npm install --global vaca
vaca

Da das Sourcing für jede neue Shell durchgeführt werden muss, fügen die Hacks des Installationsskripts dem Ende Ihres Sourcing einige automatische Sourcing hinzu .barshrc. Das funktioniert, aber ich ziehe es vor, das automatisch hinzugefügte zu entfernen und mein eigenes hinzuzufügen:

f="$HOME/.nvm/nvm.sh"
if [ -r "$f" ]; then
  . "$f" &>'/dev/null'
  nvm use --lts &>'/dev/null'
fi

Mit diesem Setup erhalten Sie zum Beispiel:

which node

gibt:

/home/ciro/.nvm/versions/node/v0.9.0/bin/node

und:

which vaca

gibt:

/home/ciro/.nvm/versions/node/v0.9.0/bin/vaca

und wenn wir das global installierte Modul verwenden möchten:

npm link vaca
node -e 'console.log(require.resolve("vaca"))'

gibt:

/home/ciro/.nvm/versions/node/v0.9.0/lib/node_modules/vaca/index.js

Wir sehen also, dass alles vollständig in der spezifischen Knotenversion enthalten ist.

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
quelle
1
Zumindest die aktuelle Version von nvm(0.35) wird .bashrcautomatisch aktualisiert . Es hängt dort die Beschaffung von nvm.shund auch Bash- Abschlüsse an.
David Ferenczy Rogožan
@ DawidFerenczyRogožan ja, danke, das habe ich in der Antwort klargestellt.
Ciro Santilli 法轮功 冠状 病 六四 事件 3
15

Versuchen Sie es auf diese Weise. Das hat mir geholfen.

  1. wget nodejs.org/dist/v0.10.36/node-v0.10.36-linux-x64.tar.gz (Datei herunterladen)

  2. Wechseln Sie in das Verzeichnis, in das die Binärdatei Node.js heruntergeladen wurde, und führen Sie dann den Befehl sudo tar -C / usr / local --strip-components 1 -xzf node-v0.10.36-linux-x64.tar.gz to aus Installieren Sie das Binärpaket Node.js in "/ usr / local /".

  3. Du kannst nachschauen:-

    $ node -v
     v0.10.36 
    $ npm -v
     1.4.28
    
Weinstock
quelle
5

Version 0.10 ist auch mit diesem ppa verfügbar

apt-add-repository ppa:chris-lea/node.js

Installieren Sie nodejs mit:

apt-get install nodejs=0.10.25-1chl1~precise1

Vielen Dank an meinen Freund Julian Xhokaxhiu

bonaccorso.p
quelle
4
Dies ist ein Befehl, der mir unter Ubuntu 14.10 E einen Fehler gibt: Version '0.10.15' für 'nodejs' wurde nicht gefunden
Rahul_Dabhi
4

Zu Ihrer Information , laut dieser Seite im Wiki des NodeJS Github Repo wurde Chris Leas PPA (in mehreren anderen Antworten erwähnt) von den NodeSource- Distributionen als Hauptmethode für die Installation von NodeJs aus dem Quellcode in Ubuntu abgelöst:

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

Dies wird für die drei neuesten (zum Zeitpunkt des Schreibens) LTS-Versionen von Ubuntu unterstützt: 10.04 (klar), 12.04 LTS (präzise) und 14.04 (vertrauenswürdig).

Ich bin nicht sicher, ob dies bei der Installation einer alten Version von nodejs hilfreich sein wird, aber ich füge dies hier ein, falls es anderen hilft, die eine bestimmte (neuere) Version von nodejs installieren mussten, die nicht in den Repositorys ihrer Distribution enthalten ist.

waldyrious
quelle
3
OP fragt nach einer bestimmten Knotenversion.
Axd
3

HINWEIS: Sie können die NVM-Software verwenden, um dies auf eine andere Art und Weise zu tun. Ich habe jedoch Probleme mit einem Computer, auf dem ich NVM nicht verwenden konnte. Also muss ich nach einer Alternative suchen ;-)

Sie können manuell herunterladen und installieren.

Gehen Sie zu nodejs> download> andere Releases http://nodejs.org/dist/

Wählen Sie die gesuchte Version aus http://nodejs.org/dist/v0.8.18/

Wählen Sie die Ihrer Umgebung entsprechenden Distributionsdateien aus und laden Sie sie herunter (achten Sie auf die 32-Bit- / 64-Bit-Version). Beispiel: http://nodejs.org/dist/v0.8.18/node-v0.8.18-linux-x64.tar.gz

Extrahieren Sie Dateien und befolgen Sie die Anweisungen auf README.md:

Bauen:

Voraussetzungen (nur Unix):

* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

Unix / Macintosh:

./configure
make
make install

Wenn sich Ihre Python-Binärdatei an einem nicht standardmäßigen Speicherort befindet oder einen nicht standardmäßigen Namen hat, führen Sie stattdessen Folgendes aus:

export PYTHON=/path/to/python
$PYTHON ./configure
make
make install

Windows:

vcbuild.bat

So führen Sie die Tests aus:

Unix / Macintosh:

make test

Windows:

vcbuild.bat test

So erstellen Sie die Dokumentation:

make doc

So lesen Sie die Dokumentation:

man doc/node.1

Vielleicht möchten (müssen) Sie den Ordner an einen geeigneteren Ort wie /usr/lib/nodejs/node-v0.8.18/ verschieben und dann einen symbolischen Lynk auf / usr / bin erstellen, um von überall aus Zugriff auf Ihre Installation zu erhalten.

sudo mv /extracted/folder/node-v0.8.18 /usr/lib/nodejs/node-v0.8.18
sudo ln -s /usr/lib/nodejs/node-v0.8.18/bin/node /usr/bin/node

Und wenn Sie eine andere Version auf demselben Computer wünschen, können Sie Debian-Alternativen verwenden. Gehen Sie wie zuvor beschrieben vor, um eine zweite Version herunterzuladen. Zum Beispiel die neueste Version.

http://nodejs.org/dist/latest/ -> http://nodejs.org/dist/latest/node-v0.10.28-linux-x64.tar.gz

Wechseln Sie zu Ihrem bevorzugten Ziel, genau wie in der restlichen Version, die Sie installieren möchten.

sudo mv /extracted/folder/node-v0.10.28 /usr/lib/nodejs/node-v0.10.28

Folgen Sie den Anweisungen der Datei README.md. Aktualisieren Sie dann die Alternativen. Installieren Sie für jede Version, mit der Sie die Alternative herunterladen, die Alternative mit.

sudo update-alternatives    --install genname symlink  altern  priority  [--slave  genname  symlink altern]
          Add a group of alternatives  to  the  system.   genname  is  the
          generic  name  for  the  master link, symlink is the name of its
          symlink  in  the  alternatives  directory,  and  altern  is  the
          alternative being introduced for the master link.  The arguments
          after  --slave  are  the  generic  name,  symlink  name  in  the
          alternatives  directory  and alternative for a slave link.  Zero
          or more --slave options, each followed by three  arguments,  may
          be specified.

          If   the   master   symlink  specified  exists  already  in  the
          alternatives system’s records, the information supplied will  be
          added  as a new set of alternatives for the group.  Otherwise, a
          new group, set to  automatic  mode,  will  be  added  with  this
          information.   If  the group is in automatic mode, and the newly
          added alternatives’ priority is higher than any other  installed
          alternatives  for  this  group,  the symlinks will be updated to
          point to the newly added alternatives.

zum Beispiel:

sudo update-alternatives --install /usr/bin/node node /usr/lib/nodejs/node-v0.10.28 0 --slave /usr/share/man/man1/node.1.gz node.1.gz /usr/lib/nodejs/node-v0.10.28/share/man/man1/node.1

Anschließend können update-alternatives --config nodeSie zwischen einer beliebigen Anzahl von auf Ihrem Computer installierten Releases wählen.

Darofar
quelle
2

Zu Ihrer Information, die verfügbare Version für das Selten in Chris Leas Repo ist derzeit 0.8.25

sudo apt-get install nodejs=0.8.25-2chl1~raring1

David JM Emmett
quelle
1
Die Version ändert sich offensichtlich ständig. Wie sehe ich, welche Version die richtige ist?
Kevin
2

Um eine bestimmte Version von nodejs in Ubuntu zu installieren, können Sie die folgenden Befehle verwenden. Geben Sie einfach die Versionsnummer an und ersetzen Sie sie. Beispielsweise ruft node_12.x die neueste von 12 ab.

curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install nodejs
Herr
quelle
Die Angabe der Nebenversion wie node_12.16.3 funktioniert nicht. Ich habe es gerade mit node_12.18.4 versucht, einer LTS-Version von heute.
user3785966
1

Ja, es ist eine doppelte Antwort, aber ich bestehe darauf, das Modul n zu verwenden, um eine bestimmte Version zu installieren (die folgenden Befehle installieren die Knotenversion 6.9.5).

npm install -g  n
n 6.9.5
Nilakantha Singh Deo
quelle
0

Das Node.js-Projekt hat kürzlich eine neue stabile Version mit der Version 0.10.0 herausgebracht. Verwenden Sie den folgenden Befehl unter Ubuntu 13x sudo apt-get install nodejs = 0.10.18-1chl1 ~ raring1

user2779916
quelle
0

Installieren Sie nvm mit den folgenden Befehlen in derselben Reihenfolge. NVm steht für Node Version Manager.

sudo apt-get update
sudo apt-get install build-essential checkinstall libssl-dev
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

Falls der obige Befehl nicht funktioniert, fügen Sie -k nach -o- hinzu. Es sollte wie folgt sein:

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

Dann nvm ls-remotesehen Sie die verfügbaren Versionen. Wenn Sie im Gegenzug N / A erhalten, führen Sie Folgendes aus.

export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist

Alternativ können Sie auch die folgenden Befehle ausführen

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This         loads nvm bash_completion

Dann nvm install #.#.#ersetzen Sie # endlich durch die Version (sagen wir nvm 8.9.4)nvm use #.#.#

Nilakantha Singh Deo
quelle