Wie aktualisierst du npm auf die neueste Version? [Duplikat]

107

Ich habe Probleme mit npm in einer Vagrant-Box, die ich aufstelle. Ich habe bemerkt, dass die npm Version etwas alt ist, also wollte ich das Problem mit der neuesten Version überprüfen.

Nach meinem Verständnis sollten Sie npm mithilfe von npm install -g npm aktualisieren können, aber der Befehl hat keine Auswirkungen auf die verwendete npm :

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10

Ich habe auch versucht, n zu verwenden (wie in Wie kann ich mein nodeJS auf die neueste Version aktualisieren? ), um es zu aktualisieren, aber es betrifft weder npm noch node :

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$
vagrant@box:~$ sudo npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
n@1.2.9 /usr/lib/node_modules/n
vagrant@box:~$ sudo n stable

     install : v0.10.33
       mkdir : /usr/local/n/versions/0.10.33
       fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
   installed : v0.10.33

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$ npm -v
1.3.10

Was muss ich tun, um npm auf die neueste Version zu aktualisieren?

    
Der Hochstapler 17.12.2014, 10:39
quelle

10 Antworten

127

Ich verstehe immer noch nicht warum , aber ich muss npm install -g npm zweimal ausführen, damit es den gewünschten Effekt hat:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ sudo npm install -g npm
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
npm@2.1.12 /usr/lib/node_modules/npm
vagrant@box:~$ npm -v
2.1.12
    
Der Hochstapler 17.12.2014, 11:31
quelle
34

Sie können nodejs aktualisieren, indem Sie npm selbst, ein PPA oder manuell verwenden.

npm :

Überprüfen Sie die aktuelle Version, die Sie haben:

node -v

Der folgende Befehl löscht Ihren Cache.

sudo npm cache clean -f

Installieren Sie n

sudo npm install -g n

Sie können ihm sagen, dass er eine bestimmte Version installieren soll:

sudo n 0.8.11

Oder sagen Sie es einfach, um die neueste stabile Version zu installieren. Beides kann eine Weile dauern.

sudo n stable

Um zu sehen, ob es tatsächlich aktualisiert wurde, führen Sie:

node -v

PPA :

Andere Möglichkeit ist es, es über eine PPA von chris-lea ;

sudo add-apt-repository ppa:chris-lea/node.js  
sudo apt-get update  
sudo apt-get install nodejs

Diese PPA unterstützt die folgenden Distributionen: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04), Quantal (12.10), Präzise (12.04), Oneiric (11.10), Natty (11.04), Lucid (10.04).

Manuell :

Sie können es jederzeit aktualisieren, indem Sie die neueste Version manuell herunterladen und selbst installieren!

Referenz :

blade19899 17.12.2014 11:38
quelle
30

Wenn Sie npm install -g npm zuerst ausführen, sucht die Shell (Bash) in Ihrem Pfad nach npm , sucht nach /usr/bin/npm , das vom Systempaket installiert wurde, und installiert dann die neue Version von npm . Die neue Version wird in /usr/local/bin/npm installiert.

Nun sollte dein Pfad /usr/local/bin/ BEFORE /usr/bin/ haben, also würdest du denken, er würde jetzt die aktualisierte Version in /usr/local/bin/ übernehmen, richtig? Falsch.

Bash führt CACHE nach der ersten Suche nach ausführbaren Pfaden aus. Wenn Sie also zum zweiten Mal npm sagen, verwendet es immer noch die zwischengespeicherte Version, die es zuerst als /usr/bin/npm gefunden hat.

Um Bash mitzuteilen, dass er diesen Cache löschen und den Pfad erneut durchsehen soll, müssen Sie hash -r ausführen.

Nachdem ich npm installiert habe, hat meine Shell die neue Version von npm gut aufgenommen.

Danke

    
Asfand Qazi 14.02.2015 12:54
quelle
15

Aktualisieren Sie NPM auf die neueste Version in einem Befehl

Um die Version Ihres npm zu aktualisieren oder zu aktualisieren, geben Sie einfach terminal ein:

sudo npm install npm@latest -g

Wie in der Fußzeile der NPM-Dokumentation

erwähnt     
Jonatas Eduardo Salgado 02.04.2016 19:53
quelle
12

Die meiste Zeit kann ich es nicht mit dem globalen Befehl aktualisieren. Was für mich funktionierte, ist das Upgrade des Pakets von der Quelle aller Knotenmodule des Systems:

Finden Sie heraus, wo npm installiert ist und gehen Sie in diesen Ordner

# Below command shows the destination (remove sed pipe to see the full path of npm-cli)
whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'

# Go in there and install it manually. In my case it was the folder below... 
# NOTE: on mac its in /usr/local/lib
cd /usr/lib
sudo npm install npm@latest

Sieh dir den mächtigen Einzeiler für alle an (besonders faule Leute)

cd 'whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//''; cd ..; sudo npm install npm@latest
    
Tom Siwik 05.03.2015 15:20
quelle
1

Jeder Trick, den du machst, verwende nicht Git , ich empfehle, sie in Composer terminal auszuführen. Es wird sicherlich funktionieren. Es hat für mich von npm install npm -g getan.

    
Gildas Niyigena 14.01.2016 19:58
quelle
1

Um npm zu aktualisieren, müssen Sie nodejs auf die neueste Version aktualisieren, die npm

enthält

In Debian Stretch und Jessie benutze dieses Skript:

#install prerequisites
apt-get install apt-transport-https curl git lsb-release -y

#Install NodeJS from external repositories
DISTRO=$(lsb_release -c -s)
if [ "$DISTRO" == "stretch" ]
then
  DISTRO="jessie"
fi

if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null
then
  curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
  echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list
  echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
  apt-get update
  # comment out the following line, if you installed nodejs 7 already (check with 'apt-cache policy nodejs')
  apt-get remove nodejs nodejs-legacy npm
  apt-get install nodejs -y
else
  echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. "
fi

In Ubuntu können Sie dieses Skript aus Pfandrecht verwenden:

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

Sehen Sie die Quelle zuerst unter Pfandrecht

    
rubo77 21.01.2017 21:33
quelle
0

Upgrade auf nodejs v0.12.7

 # Note the new setup script name for Node.js v0.12
 curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

 # Then install with:
 sudo apt-get install -y nodejs

Quelle von nodesource.com

    
Rémi B. 13.07.2015 12:04
quelle
0

Ich war mit dem Problem konfrontiert. Meine aktuelle npm-Version war 3.3.12 , aber ich habe versucht, sudo npm install npm -g , sudo npm update npm -g .. nichts hat funktioniert .. während ich npm --version Ich bekomme immer 3.3.12 . Ich suchte nach Verzeichnissen in meinem Ubuntu 15.04 und fand zwei Versionen von npm in einem anderen Verzeichnis.

  • v3.3.12 in /usr/local/lib/node_modules/npm
  • v3.6 in /usr/lib/node_modules/npm

Also habe ich eine Kopie von 3.3.12 mit mv npm npm_3312 erstellt, während ich im älteren npm Verzeichnis war. Dann habe ich sudo cp -r npm /usr/local/lib/node_modules/ , während ich im Verzeichnis '/ usr / lib / node_modules' war. Ich habe mein npm --version gemacht und ich habe 3.6.0

bekommen

: D

    
Ariful Haque 29.01.2016 10:47
quelle
0

Ich sehe keinen Grund, etwas, das dort fertig ist, neu zu installieren, verwenden Sie einfach update -g , das in den Paketmanager integriert ist, um sich selbst zu aktualisieren:

$ npm -v
2.15.1
$ sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@3.10.9 /usr/local/lib/node_modules/npm
$ npm -v
3.10.9

Stellen Sie sicher, dass das globale Flag -g vor den Paketen steht. Ich hatte Probleme in der Vergangenheit mit npm Registrierung der Flagge nach der Paketliste.

    
SmujMaiku 28.10.2016 19:06
quelle

Tags und Links