Como você atualiza o npm para a versão mais recente? [duplicado]

104

Estou tendo problemas com npm em uma caixa do Vagrant que estou configurando. Percebi que a versão npm é um pouco antiga, então quis verificar o problema com a versão mais recente.

Entendo que você deve poder atualizar npm usando npm install -g npm , mas o comando não tem efeito sobre o npm que está sendo usado:

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

Eu também tentei usar n (como sugerido em Como posso atualizar meu nodeJS para a versão mais recente? ) para atualizar, mas isso não afeta nem npm nem 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

O que preciso fazer para atualizar o npm para a versão mais recente?

    
por Oliver Salzburg 17.12.2014 / 10:39

10 respostas

119

Ainda não entendo por que , mas preciso executar npm install -g npm duas vezes para que tenha o efeito desejado:

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
    
por Oliver Salzburg 17.12.2014 / 11:31
34

Você pode atualizar os nodejs usando o próprio npm, um PPA ou manualmente.

npm :

Verifique a versão atual que você tem:

node -v

O seguinte limpa seu cache.

sudo npm cache clean -f

Instale n

sudo npm install -g n

Você pode dizer para instalar uma versão específica assim:

sudo n 0.8.11

Ou apenas diga para instalar a última versão estável. Ambos podem demorar um pouco.

sudo n stable

Para ver se ele realmente foi atualizado, execute:

node -v

PPA :

Outra opção é instalá-lo através de um PPA por chris-lea ; / p>

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

Este PPA suporta as seguintes distros: Utopic (14.10), Trusty (14.04), Saucy (13.10), Raring (13.04), Quantal (12.10), Preciso (12.04), Onírico (11.10), Natty (11.04), Lúcido (10,04).

Manualmente :

Você sempre pode atualizá-lo manualmente fazendo o download da versão mais recente e instalando-a você mesmo!

Referência :

por blade19899 17.12.2014 / 11:38
30

Quando você executar npm install -g npm , o shell (Bash) procurará npm em seu caminho, localize /usr/bin/npm instalado pelo pacote do sistema e use-o para instalar a nova versão de npm . A nova versão será instalada em /usr/local/bin/npm .

Agora, seu caminho deve ter /usr/local/bin/ BEFORE /usr/bin/ , então você pensaria que agora escolheria a versão atualizada em /usr/local/bin/ , certo? Errado.

O Bash executará os caminhos executáveis do CACHE depois da primeira vez que ele os procurar, portanto, quando você diz npm na segunda vez, ele ainda está usando a versão em cache, que ele encontrou como /usr/bin/npm .

Para dizer ao Bash para limpar este cache e olhar pelo caminho novamente, você precisa fazer um hash -r .

Depois de instalar o npm e fazer isso, meu shell pegou a nova versão do npm .

Obrigado

    
por Asfand Qazi 14.02.2015 / 12:54
15

Atualize o NPM para a versão mais recente em um comando

Para atualizar ou atualizar a versão do seu npm, basta digitar o terminal:

sudo npm install npm@latest -g

Como mencionado no rodapé da documentação do NPM

    
por Jonatas Eduardo Salgado 02.04.2016 / 19:53
12

Na maior parte do tempo, não consigo atualizá-lo com o comando global. O que funcionou para mim, no entanto, é atualizar o pacote da origem de todos os sistemas node-modules:

Descubra onde o npm está instalado e entre nessa pasta

# 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

Veja o poderoso verso para todos (especialmente pessoas preguiçosas)

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

Qualquer truque que você fizer, não use Git , eu recomendo executá-los no Composer terminal . Isso certamente funcionará. Fez por mim por npm install npm -g .

    
por Gildas Niyigena 14.01.2016 / 19:58
1

Para atualizar o npm , você precisa atualizar o nodejs para a versão mais recente, que inclui npm

No debian stretch e jessie use este script:

#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

No Ubuntu, você pode usar esse script no link :

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

veja a fonte primeiro em link

    
por rubo77 21.01.2017 / 21:33
0

atualizando para o 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

Fonte de nodesource.com

    
por Rémi B. 13.07.2015 / 12:04
0

Eu estava enfrentando o problema. Minha versão atual do npm era 3.3.12 , mas eu tentei sudo npm install npm -g , sudo npm update npm -g .. nada funcionou .. enquanto eu npm --version sempre recebi 3.3.12 . Eu procurei por diretórios no meu Ubuntu 15.04 e encontrei duas versões do npm no diretório diferente.

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

Então eu fiz uma cópia do 3.3.12 com mv npm npm_3312 enquanto eu estava no diretório npm mais antigo. Então eu fiz sudo cp -r npm /usr/local/lib/node_modules/ enquanto estava no diretório '/ usr / lib / node_modules' .. Fiz meu npm --version e obtive 3.6.0

: D

    
por Ariful Haque 29.01.2016 / 10:47
0

Não vejo nenhum motivo para reinstalar algo pronto, apenas use update -g embutido no gerenciador de pacotes para se atualizar:

$ npm -v
2.15.1
$ sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
$ npm -v
3.10.9

Certifique-se de que o sinalizador global -g esteja antes dos pacotes. Eu tive problemas no passado com o npm não registrando o sinalizador após a lista de pacotes.

    
por SmujMaiku 28.10.2016 / 19:06

Tags