Warum installiert die Installation von Node 6.x unter Ubuntu 16.04 eigentlich Node 4.2.6?

78

Dies waren meine Schritte, um Node unter Ubuntu 16.04 zu installieren:

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

Was sind die offiziellen Anweisungen:

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

Danach nodejs --versionkehrt running zurück v4.2.6.

Als ich verwendete, nahm setup_6.xich an, dass eine Version, die mit beginnt 6, installiert werden würde?

Ich dachte, setup_6.xsollte vielleicht sein setup_6.2.1, aber diese Seite gibt eine 404 zurück, siehe:

https://deb.nodesource.com/setup_6.x (dort ist eine Seite)

https://deb.nodesource.com/setup_6.2.1 (gibt 404 zurück)

Wie installiere ich die neueste stabile Version von Node auf Ubuntu 16.04?

Bearbeiten:

Dies sind die Ergebnisse nach dem Laufen 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

Bearbeiten:

Ergebnisse von 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
user1063287
quelle
Fügen Sie eine Kopie der Ausgabe von apt-cache policy nodejsplease als Bearbeitung in Ihre Frage ein.
Thomas Ward
Die Tatsache, dass das System in NodeJS 4.x geladen hat, bedeutet, dass Sie entweder die falschen Skripte ausgeführt haben oder das Repository nicht korrekt zum System hinzugefügt wurde. Mit den genauen Schritten auf der Seite, auf die Sie verweisen, konnte ich die neueste Version installieren So wie es ist, kann es eine Reihe von Problemen geben. Wenn Sie apt-cacheDaten bereitstellen , damit wir sehen können, was auf Ihrem Computer in Repos vorhanden ist, können wir Ihnen möglicherweise weiterhelfen.
Thomas Ward
@ThomasW. - Daten zum Posten hinzugefügt.
user1063287
1
Danke für die aktualisierten Daten. Es sieht so aus, als hätte das Drehbuch aus irgendeinem Grund nicht das getan, was es sollte. Ich erkläre in meiner Antwort weiter unten, dass dies der Fall ist und wie das Skript manuell ausgeführt wird. Damit können Sie die neueste Version von NodeJS herunterladen. Es ist nicht so schön und einfach wie ein Skript, aber es ist wirklich das, was das Skript im Kern macht.
Thomas Ward
1
@pipe Zum Glück gibt es Leute wie mich, die Skripte in zerstörbaren VMs ausführen, damit wir sehen können, was sie tun. So habe ich die Anweisungen in meiner Antwort abgeleitet, damit wir das, was dieses 'Skript' macht, manuell machen können.
Thomas Ward

Antworten:

136

Der Hauptgrund ist, dass das Setup-Skript nicht korrekt ausgeführt wurde. Dank der aktualisierten Daten aus dem OP, die dies unterstützen, wurden die Daten aus dem NodeSource-Repository daher nie angezeigt, aptda sie vom Skript nicht ordnungsgemäß konfiguriert wurden.

Möglicherweise hat das Skript Ihre Distribution nicht gefunden oder es hat sich bei der Konfiguration des Repositorys verschlechtert, oder es ist eine Netzwerkunterbrechung aufgetreten, oder es hat tausend Gründe dafür, dass es unterbrochen wurde und seine Aufgabe nicht erfüllt hat.

Die Tatsache, dass Sie sehen 4.x, dass die Version installiert wird, bedeutet, dass das Skript seinen Job nicht richtig ausgeführt hat, sodass das Skript nicht unbedingt einen Fehler aufweist. Dies bedeutet nur, dass wir dies möglicherweise schwieriger tun müssen.

Ich sollte darauf hinweisen: Das Skript führt eigentlich keine Installation durch - es bestimmt lediglich die Debian / Ubuntu-Version, auf der Sie sich befinden, und konfiguriert das Repository, damit es Daten abruft. Der Installationsteil ist der sudo apt-get installSchritt, den Sie von Hand ausgeführt haben.


Anstatt uns auf das Skript zu verlassen, können wir das tun, was das Skript nach alter Schule tut: Richten Sie die Repository-Konfiguration von Hand ein und installieren Sie NodeJS.

Hier ist die manuelle Methode, mit der diese Funktion ausgeführt wird. Dies ist im Wesentlichen die Aufgabe des Skripts (mit Ausnahme von Schritt 4, bei dem sichergestellt werden soll, dass Sie genaue Versionsdaten erhalten):

  1. Erstellen Sie eine neue Datei: /etc/apt/sources.list.d/nodesource.list

    Sie müssen diese Datei mit erstellen sudo, aber wenn Sie die Datei erstellen, fügen Sie Folgendes ein:

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

    Speichern Sie dann die Datei. (Ersetzen node_6.xdurch node_7.xoder node_8.xusw. für neuere Knotenversionen)

  2. Laden Sie den GPG-Signaturschlüssel von Nodesource für das Repository herunter . Andernfalls erhalten Sie möglicherweise NO_PUBKEYFehler mit apt-get update(verwenden Sie wgetdiesen Befehl, wenn er curlnicht installiert ist, und installieren Sie einen der beiden Befehle , wenn keiner installiert ist):

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. Manuell ausführensudo apt-get update .

    Dadurch werden die Daten aus dem Nodesource-Repository aktualisiert, sodass bekannt ist, aptdass eine neuere Version vorhanden ist.

    Wenn Sie einen NO_PUBKEYGPG-Fehler erhalten, fahren Sie mit Schritt 2 fort

  4. Überprüfen Sie die apt-cache policy nodejsAusgabe.

    Dies wird nicht vom Skript ausgeführt, aber Sie möchten sicherstellen, dass in der Ausgabe ein Eintrag mit der folgenden Bedeutung angezeigt wird (obwohl die Version möglicherweise anders ist, wenn Sie nicht 6.x als Versionszeichenfolge verwenden. Dies ist das Einzige, was wir tun Bedenken Sie, dass es eine neuere Versionsnummer gibt, die über nodeSource bereitgestellt wird.

    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
    

    Wenn Sie solche Einträge nicht sehen und nur 4.2.6 sehen, fangen Sie von vorne an. Andernfalls fahren Sie fort.

  5. Installieren Sie die nodejsBinärdatei. Nachdem Sie bestätigt haben, dass 6.x auf Ihrem System verfügbar ist, können Sie es installieren:sudo apt-get install nodejs

  6. nodejs --versionsollte jetzt v6.2.1bei der Ausgabe v6.angezeigt werden (sofern es mit Version 6 beginnt) ; dies kann eine höhere Versionsnummer sein, wenn Sie eine neuere Version als 6 verwenden, sofern es sich nicht um 4.2.6 handelt sollte gut gehen).

Thomas Ward
quelle
4
Es folgte ein T und alle Punkte stimmten mit dem beschriebenen Verhalten überein. Vielen Dank.
user1063287
1
@ user1063287 Gern geschehen! Hoffentlich hilft das anderen, wenn das Skript auch für sie nicht funktioniert! Viel Spaß mit dem neuesten NodeJS!
Thomas Ward
Oh, so dass ‚ der Grund , warum ich eigentlich nicht über Knoten 6 , wenn ich dachte , ich tue, und Programme beschweren Ich brauche Version 6. Dank!
Katze
Danke, hat /etc/apt/sources.list.d/nodesource.listsuper geklappt , ich habe gemerkt, dass es in meinem einen Kommentar dazu gibt, dass es deaktiviert ist - hatte auch die alte 0.x-Version drin und ich war bei 4.x mit dem Knoten -v. Schöne klare Anweisungen.
DaveStSomeWhere
1
Da curl nicht standardmäßig installiert ist, kann alternativ wgetwget -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
gerardw am
38

Ich hatte eine ältere Version von Node. Alles was ich tun musste, war das alte zu löschen:

sudo apt-get purge nodejs npm

Und dann ersetzen Sie 6 in v=6durch 7, 8, 9, je nach Bedarf für die jeweiligen Versionen (siehe offizielle Installationsanweisungen ):

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

(Stellen Sie sicher, dass Sie Curl installiert haben.)

Und zuletzt,

sudo apt-get install -y nodejs

Boom, neueste Version des Knotens.

Codemodus
quelle
4
Oder https://deb.nodesource.com/setup_7.xfür Knoten v7. Siehe offizielle Anleitung
Ryenus
2
Meins installiert immer noch v4.2.6
Freek Nortier
1
@FreekNortier Ich hatte dieses Problem auch unter Linux Mint 18. Nach dem Löschen und Ausführen konnte ich Version 11 installieren sudo apt-get install python-software-properties. Ich habe diesen Vorschlag auf tecadmin und codebind gefunden .
Ben
4

Für den Benutzer der Ubuntu 16.04.2-Version (mit einer kleinen Änderung von Thomas'post und vielen Dank für ihn)

1.Öffnen Sie den Software-Updater

2.Einstellung

3. andere Software

4.Fügen Sie die Quellen hinzu, aber denken Sie daran, die Option "Alle neuen Quellen" zu einem späteren Zeitpunkt auszuwählen.


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

5.laden

6.sudo apt-get update

7. apt-cache policy nodejs// um die neue Versionstabelle abzurufen und zu überprüfen, ob die Installation der Quelle abgeschlossen ist

8.sudo apt install nodejs

9.nodejs --version

JETZT ist alles fertig .......

Warnung: Ändern Sie den Linux-Standardtreiber für Ihre NVIDIA-Karte nicht über das Updater-Panel. Das System stürzt ab.

Jason Liu
quelle
Es installiert v4.2.6.
Prashant Prabhakar Singh
nett! arbeitete für mich
ejaenv
3

Ich hatte das gleiche Problem. Aber in meinem Fall musste ich meinen Curl-Befehl aktualisieren. Sie können das Problem erkennen, indem Sie die Option -S ausführen.

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

Welches zeigte das Problem

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

Also habe ich dieses Problem behoben, indem ich Folgendes ausführte.

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
quelle
löste das Problem
SadeepDarshana
1

Indem Sie @Thomas Ward hinzufügen, antworten Sie denjenigen, die Probleme bei der Installation von nodejs 8.x haben, mit der https-URL oder dem Code. Installieren Sie weiterhin v4.2.6, indem Sie den Zertifikatfehler anzeigen. Versuchen Sie, nodeource.list mit den folgenden Zeilen hinzuzufügen

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

nächster Schritt: Ausführen

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

Dann

sudo apt-get install -y nodejs

Dies wird Ihr Problem lösen, indem Sie die aktualisierte NodeJS-Version und Npm-Version installieren, wie sie meine für Ubuntu 16.04 LTS gelöst haben ...

Sonnenschmied
quelle
0

Ich habe diesen Link gefunden und er hilft mir bei der Installation von Nodejs8____https: //www.ubuntuupdates.org/ppa/nodejs_7.x. Ich musste mich Nojs8https anschließen, weil es hieß, ich müsse Level zwei sein, um mehr als zwei Links posten zu können. Ich denke, das ist zufällig, aber was auch immer.

Vor der Installation habe ich den Befehl ausgeführt: apt-get remove --purge version nodejs

Um zu überprüfen, ob keine Version installiert ist, führen Sie Folgendes aus: apt-cached policy nodejs und / oder nodejs --version

Ich konnte Node js 8 installieren, indem ich nur die 7 in 8 änderte, und am Ende stand Version 8.1.3 zur Verfügung. Zu diesem Zweck habe ich die Befehle ausgeführt, die auf der oben angegebenen Seite enthalten sind. Hier sind jedoch die Befehle:

Laden Sie den Repository-Schlüssel herunter mit:

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

Dann richten Sie das Repository ein:

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

Wenn Sie den Knoten js 8 haben möchten, können Sie die Nummer 7 in dieser Befehlszeile in 8 und voila!

Victor Espinoza
quelle
0

Ich habe versucht, den Anweisungen unter https://github.com/nodesource/distributions für Version 8 zu folgen , aber das hat bei mir nicht funktioniert. Ich habe https://deb.nodesource.com/setup_8.x direkt im Browser aufgerufen und das Skript in eine Datei auf meinem System nodejs.sh kopiert und eingefügt . Dann habe ich die folgenden Befehle ausgeführt

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

Der Befehl apt-cache zeigte zwei Versionen mit einer Voreinstellung für die Installation von 8. Sie können die Installationsdatei anschließend löschen. Nicht sicher, warum das Kopieren der Datei lokal geholfen hat, da der Befehl curl das Skript korrekt angezeigt hat.

Bryan Toth
quelle
0

Hey Leute, wenn ihr Ubuntu 16 habt, probiert diese Anleitung. Es hat bei mir perfekt funktioniert. Geben Sie auch Ihr Kontopasswort an, wenn Sie dazu aufgefordert werden.

  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 Überprüfen Sie, ob die aufgelisteten Versionen Knoten 8 haben

  5. sudo apt-get install nodejs

  6. nodejs -v prüft die installierte Knotenversion

Dadurch wird nodejs Version 8 erfolgreich auf Ihrem System installiert. Wenn Sie eine andere Version wünschen, ändern Sie die Version in Schritt 1 und 2, damit sie erfolgreich funktioniert.

Bogenblitz
quelle