Ik'heb problemen met npm
in een Vagrant box die ik aan het opzetten ben. Ik merkte dat de npm
versie wat oud is, dus ik wilde het probleem controleren met de laatste versie.
Ik heb begrepen dat je npm
zou moeten kunnen updaten met npm install -g npm
, maar het commando heeft geen effect op de npm
die wordt gebruikt:
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
[email protected] /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10
Ik heb ook geprobeerd om n
te gebruiken (zoals voorgesteld in https://askubuntu.com/questions/426750/how-can-i-update-my-nodejs-to-the-latest-version) om te updaten, maar het heeft geen effect op npm
of 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
[email protected] /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
Wat moet ik doen om npm bij te werken naar de nieuwste versie?
Ik begrijp nog steeds niet waarom, maar ik moet npm install -g npm
twee keer uitvoeren voordat het het gewenste effect heeft:
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
[email protected] /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
[email protected] /usr/lib/node_modules/npm
vagrant@box:~$ npm -v
2.1.12
Wanneer je voor het eerst npm install -g npm
doet, zal de shell (Bash) zoeken naar npm
in je pad, /usr/bin/npm
vinden dat geïnstalleerd is door het systeempakket, en het dan gebruiken om de nieuwe versie van npm
te installeren. De nieuwe versie zal worden geïnstalleerd in /usr/local/bin/npm
.
Nu, uw pad zou /usr/local/bin/
VOOR /usr/bin/
moeten hebben, dus u zou denken dat het nu de bijgewerkte versie in /usr/local/bin/
zou oppikken, toch? Fout.
Bash zal uitvoerbare paden in het cachegeheugen opslaan nadat het er de eerste keer naar heeft gezocht, dus als je de tweede keer npm
zegt, gebruikt het nog steeds de cache-versie die het eerst vond als /usr/bin/npm
.
Om Bash te vertellen dat hij deze cache moet wissen en het pad opnieuw moet doorzoeken, moet je een hash -r
doen.
Na het installeren van npm
en dit gedaan te hebben, pikte mijn shell de nieuwe versie van npm
prima op.
Bedankt
U kunt nodejs bijwerken door npm zelf te gebruiken, een PPA, of handmatig.
npm:
Controleer de huidige versie die je hebt:
node -v
Het volgende wist uw cache.
sudo npm cache clean -f
Installeer n
sudo npm install -g n
U kunt het vertellen om een specifieke versie te installeren zoals dit:
sudo n 0.8.11
Of vertel het gewoon om de laatste stabiele versie te installeren. Beide kan een tijdje duren.
sudo n stable
Om te zien of het echt geüpgraded heeft, voer uit:
node -v
PPA:
Andere optie is om het te installeren via een PPA door chris-lea;
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Deze PPA ondersteunt de volgende distro's: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04), Quantal (12.10), Precise (12.04), Oneiric (11.10), Natty (11.04), Lucid (10.04).
Manueel:
U kunt het altijd updaten door handmatig de nieuwste versie te downloaden en deze zelf te installeren!
Referentie: