Acabei de instalar o nodejs em uma nova micro instância do EC2.
Eu o instalei normalmente ./configure -> make -> sudo make install.
Problema: Quando executo o "nó" no usuário ec2, ele funciona perfeitamente. Quando executo o "nó do sudo", ele falha.
Eu descobri que o nó está em:
[ec2-user@XXXX ~]$ whereis node
node: /usr/local/bin/node /usr/local/lib/node
e o caminho atual é
[ec2-user@XXXX ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin
mas, o caminho do sudo é
[root@ip-10-112-222-32 ~]# echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin
tentei editar o PATH raiz para incluir os caminhos para o nó, para que o "nó" seja executado quando eu estiver logado como raiz - mas ainda não funcionará quando eu fizer logon como usuário ec2 e executar "sudo node" .
Eu preciso disso para instalar o npm Properfly. Alguma idéia de como incluir o caminho do nó durante a execução do "nó sudo"?
node.js
bash
amazon-ec2
sudo
foobar
fonte
fonte
Respostas:
Sim, é um pouco chato, mas você pode corrigi-lo com alguns links:
Pode haver mais, mas isso é tudo o que encontrei até agora. A falta de node-waf fará com que algumas
npm
instalações falhem com uma mensagem de erro um tanto enigmática.fonte
node-waf
causasnpm rebuild
para erro. Existe uma maneira limpa de remediar isso? Eu preciso?/usr/local
não existe. Eu criei um diretório ~ / local, no entanto. 3) Depois de remover/usr
esudo
de cada uma dessas linhas de código e executá-las no meu console, nada havia mudado.Eu adicionei
/usr/local/bin
asecure_path
em/etc/sudoers
Então mude esta linha:
Para:
fonte
isso acontece porque o nó executável não foi encontrado em / usr / bin. Então siga as etapas:
whereis node
No meu caso:
node: /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node
faça um link simbólico para o nó:
sudo ln -s /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node
Está feito!
fonte
sudo ln -s /home/ec2-user/.nvm/versions/node/v8.11.3/bin/npm /usr/bin/npm
como eu estava tentando fazer sudonpm install
na instância meu AWS EC2 depois de seguir ligaçãoPor que não usar o caminho absoluto para o nó? Se você planeja usar um script inicial, ele precisará de um caminho absoluto.
fonte
ln
soluções.tente o seguinte:
fonte
secure_path
definidas emsudoers
arquivo.Você pode passar o caminho completo para o
node
executável do pai (shell não sudo) usando owhich
comandofonte
Para mim, funcionou apenas para alterar a propriedade da pasta do nó da raiz para o usuário ec2 (conectado como usuário ec2).
(Nota: criei a pasta do nó em / var / lib /)
Então
deve funcionar bem (desde que você tenha instalado o npm ok, é claro!)
fonte
Aqui está uma abordagem que não usa links simbólicos ou requer raiz:
Então eu fiz:
Os benefícios de não executar o nó como raiz são discutidos aqui:
http://increaseyourgeek.wordpress.com/2010/08/18/install-node-js-without-using-sudo/
Está alinhado com:
https://github.com/joyent/node/wiki/Installation
fonte
Que tal usar "sudo $ (qual nó)" em vez de "sudo node"?
fonte
No meu caso, o Node foi instalado sem o prefixo sudo . Portanto, o nó não estava disponível para o superusuário, por isso não está funcionando
sudo node server
fonte
Não sei se é o caminho certo, mas foi o que fiz ...
Isso instalou o npm e agora posso instalar os pacotes que eu desejar.
fonte