Comando não encontrado ao executar o pacote node.js n no sudo

10

Estou tentando atualizar minha versão do nó para a última versão estável.

Usando este recurso , consegui:

sudo npm install n -g

Mas quando eu tento

sudo npm n stable

Eu recebo:

sudo: n: command not found

Se eu executar n stable , o comando está presente:

n stable
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

     install : node-v0.12.2
       mkdir : /usr/local/n/versions/node/0.12.2
mkdir: cannot create directory ‘/usr/local/n’: Permission denied

  Error: sudo required
    
por JonRed 13.04.2015 / 10:07

3 respostas

5

Surpreendentemente, sua instalação npm tem o prefixo global em uma pasta chamada npm em seu diretório inicial. Isso significa que qualquer pacote instalado com o sinalizador -g será instalado nessa pasta.

Você pode alterar essa pasta para qualquer pasta que esteja no caminho sudo safe seguindo estas etapas:

Forma gráfica:

  1. Abra um Gerenciador de arquivos (também conhecido como Nautilus).
  2. Navegue até a sua pasta pessoal.
  3. Pressione Ctrl + H para mostrar os arquivos ocultos.
  4. Abra um arquivo chamado .npmrc com seu editor de texto favorito.
  5. Encontre uma linha nesse arquivo com este conteúdo:

    prefix=/home/<your_username>/npm
    
  6. Substitua /home/<your_username>/npm por um caminho seguro (como /usr/local/bin ).
  7. Uma vez substituído, ficará assim:

    prefix=/usr/local/bin
    
  8. Salve o arquivo.
  9. Executar novamente sudo npm install n -g

Modo de terminal:

Execute este comando:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc
    
por Helio 14.04.2015 / 21:12
17

Eu encontrei a solução que funcionou para mim:

sudo -E env "PATH=$PATH" n stable

Encontrá-lo aqui: link

    
por Luckylooke 06.07.2015 / 17:00
1

Eu sei que este é um fórum do Ubuntu, mas tenho certeza que isso ajudará alguém com o mesmo problema nos sabores do RHEL que fizeram o Google aqui, como eu fiz. Talvez também funcione no Ubuntu.

Esta é a abordagem :

ln -s /usr/local/bin/n /usr/bin/n
    
por poshest 05.08.2017 / 21:52

Tags