Jak aktualizujesz NPM do najnowszej wersji? [duplikować]

107

Mam problem z npm w polu Włamywacz, którego konfiguruję. Zauważyłem, że wersja npm jest nieco stara, więc chciałem sprawdzić problem z najnowszą wersją.

Rozumiem, że powinieneś być w stanie zaktualizować npm używając npm install -g npm , ale polecenie nie ma wpływu na npm , którego używasz:

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

Próbowałem również używać n (zgodnie z sugestią Jak zaktualizować mój węzełJS do najnowszej wersji? ), aby go zaktualizować, ale nie ma wpływu na npm ani 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

Co muszę zrobić, aby zaktualizować NPM do najnowszej wersji?

    
zadawane Der Hochstapler 17.12.2014, 10:39
źródło

10 odpowiedzi

127

Nadal nie rozumiem dlaczego , ale muszę dwukrotnie uruchomić npm install -g npm , aby uzyskać pożądany efekt:

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
    
odpowiedział Der Hochstapler 17.12.2014, 11:31
źródło
34

Możesz zaktualizować nodejs używając samego npm, PPA lub ręcznie.

npm :

Sprawdź aktualną wersję:

node -v

Poniższe wyczyści pamięć podręczną.

sudo npm cache clean -f

Zainstaluj n

sudo npm install -g n

Możesz powiedzieć, żeby zainstalować konkretną wersję, jak:

sudo n 0.8.11

Lub po prostu powiedz, aby zainstalować najnowszą stabilną wersję. Oba mogą trochę potrwać.

sudo n stable

Aby sprawdzić, czy rzeczywiście została zaktualizowana, uruchom:

node -v

PPA :

Inną opcją jest zainstalowanie go za pośrednictwem PPA autor: chris-lea ;

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

Niniejszy PPA obsługuje następujące dystrybucje: 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).

Ręcznie :

Zawsze możesz zaktualizować ją ręcznie pobierając najnowszą wersję i instalując ją samodzielnie!

Odniesienie :

odpowiedział blade19899 17.12.2014, 11:38
źródło
30

Kiedy robisz po raz pierwszy npm install -g npm , powłoka (Bash) wyszuka npm w twojej ścieżce, znajdzie /usr/bin/npm zainstalowanego przez pakiet systemowy, a następnie użyje go do zainstalowania nowej wersji npm . Nowa wersja zostanie zainstalowana w /usr/local/bin/npm .

Teraz twoja ścieżka powinna mieć /usr/local/bin/ PRZED /usr/bin/ , więc myślisz, że teraz pobierze zaktualizowaną wersję w /usr/local/bin/ , prawda? Źle.

Bash wykona ścieżki wykonywalne CACHE po pierwszym ich wyszukaniu, więc kiedy powiesz npm po raz drugi, nadal używa on wersji buforowanej, którą najpierw znalazł jako /usr/bin/npm .

Aby powiedzieć Bashowi, aby wyczyścił pamięć podręczną i ponownie przejrzał ścieżkę, musisz zrobić hash -r .

Po zainstalowaniu npm i zrobieniu tego, moja powłoka wybrała nową wersję npm , dobrze.

Dzięki

    
odpowiedział Asfand Qazi 14.02.2015, 12:54
źródło
15

Zaktualizuj NPM do najnowszej wersji w jednym poleceniu

Aby uaktualnić lub zaktualizować wersję swojego npm, wystarczy wpisać terminal:

sudo npm install npm@latest -g

Jak wspomniano w stopce dokumentacji NPM

    
odpowiedział Jonatas Eduardo Salgado 02.04.2016, 19:53
źródło
12

Zazwyczaj nie mogę uaktualnić go za pomocą polecenia globalnego. Co jednak dla mnie działało, to uaktualnienie pakietu ze źródła wszystkich modułów węzłów systemowych:

Dowiedz się, gdzie npm jest zainstalowany i przejdź do tego folderu

# 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

Oto potężny jednolinijkowy dla wszystkich (szczególnie leniwych)

cd 'whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//''; cd ..; sudo npm install npm@latest
    
odpowiedział Tom Siwik 05.03.2015, 15:20
źródło
1

Wszelkie sztuczki, które robisz, nie używaj Git , polecam je uruchamiać w Composer terminal . To na pewno zadziała. Zrobiłem to dla mnie npm install npm -g .

    
odpowiedział Gildas Niyigena 14.01.2016, 19:58
źródło
1

Aby zaktualizować npm , musisz zaktualizować nodejs do najnowszej wersji, która zawiera npm

W sekcji debian stretch i jessie użyj tego skryptu:

#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

W Ubuntu możesz użyć tego skryptu z linku :

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

najpierw sprawdź źródło na link

    
odpowiedział rubo77 21.01.2017, 21:33
źródło
0

aktualizacja do 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

Źródło z nodesource.com

    
odpowiedział Rémi B. 13.07.2015, 12:04
źródło
0

Stawiłem czoła problemowi. Moja aktualna wersja npm była 3.3.12 , ale próbowałem sudo npm install npm -g , sudo npm update npm -g .. nic nie działało ... podczas gdy ja npm --version zawsze otrzymuję 3.3.12 . Szukałem katalogów w moim Ubuntu 15.04 i znalazłem dwie wersje npm w innym katalogu.

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

Zrobiłem kopię 3.3.12 z mv npm npm_3312 podczas gdy byłem w starszym katalogu npm. Następnie zrobiłem sudo cp -r npm /usr/local/lib/node_modules/ , gdy byłem w katalogu / usr / lib / node_modules. Zrobiłem mój npm --version i otrzymałem 3.6.0

: D

    
odpowiedział Ariful Haque 29.01.2016, 10:47
źródło
0

Nie widzę powodu, aby ponownie instalować coś, co jest tam gotowe, wystarczy użyć aktualizacji -g wbudowanej w menedżera pakietów, aby zaktualizować się:

$ 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

Upewnij się, że flaga globalna -g znajduje się przed pakietami. W przeszłości miałem problemy z npm nie zarejestrowaniem flagi po liście pakietów.

    
odpowiedział SmujMaiku 28.10.2016, 19:06
źródło

Przeczytaj inne pytania na temat tagów