As recompras oficiais são uma bagunça ...
Instalar o Node e o npm através dos repositórios oficiais sempre me deu problemas. Eu suspeito que isso pode ser devido a ferramentas dependendo de node
, quando o comando real no Ubuntu é nodejs
, e é por isso que criar um link simbólico deve funcionar. Funcionou para mim no meu teste rápido em uma máquina virtual, mas como não funcionou para você, vamos tentar outra coisa ...
Então, instale o Node.JS de uma maneira diferente
Geralmente eu prefiro instalar o Node no Ubuntu usando o NVM. Isso evita que o problema do comandonode
não seja definido no Ubuntu, e evita a confusão de permissões que requer o uso de sudo
para instalar módulos npm.
Faça o seguinte para voltar a uma lista limpa:
Remova todos os módulos globais que você instalou com npm ( instruções aqui ):
sudo npm list -g --depth=0. | awk -F ' ' '{print }' | awk -F '@' '{print }' | sudo xargs npm remove -g
Remover pasta do nó com link simbólico:
sudo rm /usr/bin/node
Desinstale as cópias de nodejs
e npm
que você instalou nos repositórios do Ubuntu:
sudo apt-get remove --purge nodejs npm
Limpar qualquer outro lixo:
sudo apt-get autoremove
Nesse momento, which node
, which nodejs
, which npm
e which jshint
não devem retornar nada.
Reinstale o nó, ignorando os repositórios oficiais
Pegue a última cópia do NVM (talvez você precise sudo apt-get install curl
primeiro):
curl https://raw.githubusercontent.com/creationix/nvm/v0.15.0/install.sh | bash
Diga ao seu shell para usar nvm
source ~/.nvm/nvm.sh
Em seguida, instale uma versão do nó
nvm install 0.12 # or whatever the latest version is
E diga ao nvm qual versão do Node você quer usar
nvm use 0.12
Agora você deve ser capaz de rodar o Node com o comando node
, você deve ser capaz de instalar módulos globalmente sem sudo
, e você deve acabar com uma cópia de trabalho do jshint.
Se você não quiser executar nvm use v0.12
toda vez que iniciar uma nova sessão de terminal, poderá adicionar nvm use v
ao seu ~/.bashrc
. O v
não é especial, apenas corresponderá a v*
e encontrará a versão mais recente. Como alternativa, você pode codificar uma versão específica.