npm --version é diferente se usar sudo npm --version

npm --version é diferente se usar sudo npm --version

Acabei de atualizar o nodejs na minha máquina. Desinstalei a versão do nó (aquela nos repositórios do Ubuntu) que eu tinha. Então instalei o nvm e instalei o nodejs 4.2.2.

Corre tudo sem erros, mas quando rodei npm --versionmostrava 2.14.7, resolvi rodar: sudo npm install -g npmpara atualizar a versão do npm, mas quando verifiquei ainda mostrava 2.14.7. Então, verifiquei mais uma vez, mas sudo npm --versiondesta vez, e havia a versão 3.3.10 mais recente.

Por que isso acontece e como posso consertar?

Aqui está uma captura de tela:
Versão diferente do npm é mostrada com ou sem sudo

Estou usando o Ubuntu 14.04.

Editar:

adicionando quais saídas de comando

sistemas@ITAACO01:~$ which npm
/home/sistemas/.nvm/versions/node/v4.2.2/bin/npm
sistemas@ITAACO01:~$ sudo which npm
/usr/local/bin/npm

Responder1

Parece (a partir das whichsaídas) que seu usuário ( sistemas) está configurado para usar uma versão diferente e desatualizada npmlocalizada em /home/sistemas/.nvm/versions/node/v4.2.2/bin/npm- ignorando a versão atualizada de todo o sistema em /usr/local/bin/npm.

Verifique se /usr/local/binestá no seu $PATH. (Faça echo $PATHe veja se sua saída contém arquivos /usr/local/bin.

Se não, adicione-o (coloque PATH="$PATH:/usr/local/bin"no seu ~/.bash_profile)

Responder2

Existem 2 possibilidades:

  1. O caminho da nova versão não está presente:

    Adicione o caminho. Por exemplo: Adicionar /usr/local/bin/npmao caminho

  2. A versão mais antiga é anterior em $PATH:

    Remova o caminho da versão mais antiga. Por exemplo: Remover /home/sistemas/.nvm/versions/node/v4.2.2/bin/npmde$PATH

informação relacionada