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

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

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

Usandoeste recursoEu fui capaz de:

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 estará 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

Responder1

Encontrei uma solução que funcionou para mim:

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

Encontrei aqui:https://stackoverflow.com/a/29400598/861615

Responder2

Surpreendentemente, sua npminstalação possui o prefixo global em uma pasta chamada npmem seu diretório inicial, isso significa que qualquer pacote instalado com o -gsinalizador será instalado nesta pasta.

Você pode alterar esta pasta para qualquer pasta que esteja no sudocaminho seguro seguindo estas etapas:


Maneira gráfica:

  1. Abra um gerenciador de arquivos (também conhecido como Nautilus).
  2. Navegue até sua pasta pessoal.
  3. Pressione Ctrl+ Hpara mostrar arquivos ocultos.
  4. Abra um arquivo chamado .npmrccom 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>/npmpor um caminho seguro (como /usr/local/bin).
  7. Depois de substituído, ficará assim:

    prefix=/usr/local/bin
    
  8. Salve o arquivo.
  9. Corra novamentesudo npm install n -g

Maneira terminal:

Execute este comando:

sed -i.bak "s%^prefix=.*$%prefix=/usr/local/bin%" ~/.npmrc

Responder3

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

Esta é a abordagem:

ln -s /usr/local/bin/n /usr/bin/n

Responder4

Para evitar bagunçar a .npm-globalpasta comoobservadopor @Edson Horacio Junior, e baseado em @pohestresponder, aqui está como eu consertei:

sudo ln -s /home/<username>/.npm-global/bin/n /usr/local/bin/n
sudo n --version # test it

Como observação, isso provavelmente não funcionará se você não tiver seguido as etapas do npm paraalterando o diretório global padrão.

informação relacionada