Problema com a instalação do pacote npm e supervisor no Amazon Linux AMI

4

Estou executando uma AMI do Amazon Linux e instalei com sucesso o node.js por wget 'na origem, descompactando o arquivo e executando ./configure e, em seguida, sudo make install . Quando eu instalei o npm:

curl http://npmjs.org/install.sh | sudo sh

Produz:

npm cannot be installed without nodejs.
Install node first, and then try again.

Maybe node is installed, but not in the PATH?
Note that running as sudo can change envs.

PATH=/sbin:/bin:/usr/sbin:/usr/bin

Mas o nó está claramente instalado (executar node -v mostra sua versão), então deve ser que o nó não esteja no meu caminho.

Eu abro ~/.bash_profile e adiciono esta linha:

export PATH=/usr/local/bin:$PATH

Em seguida, execute source ~/.bash_profile

e tente instalar o npm novamente, apenas para descobrir que ele envia a mesma mensagem da última vez, exatamente o mesmo PATH.

Então, o mais estranho é que eu noto que o npm está realmente instalado! A execução de npm -v mostra sua versão. Hum ...

Em seguida, executo npm install supervisor no diretório do meu aplicativo e a pasta do supervisor está lá em /node_modules , mas o comando supervisor não existe.

Instalando saídas de supervisor:

npm WARN prefer global [email protected] should be installed with -g

, então eu tento npm install -g supervisor , que gera

npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/supervisor'
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

então eu tento sudo npm install -g supervisor

mas a saída é sudo: npm: command not found

Então, para resumir, o npm parece estar funcionando bem, embora a saída ao instalá-lo levaria a acreditar no contrário, e o pacote de supervisor parece estar instalado, mas seu comando não está funcionando.

Qualquer ajuda para descobrir isso seria muito apreciada!

    
por Justin Meltzer 22.05.2012 / 03:58

1 resposta

3

Quando possível, é melhor evitar a compilação de pacotes. Além de frequentemente instalar em locais não padrão, o software compilado a partir da fonte é muito mais difícil de se manter atualizado. O Node.js fornece um procedimento para instalar a partir de um repositório - que inclui o npm e alguns outros componentes relacionados. O repositório é mantido atualizado e raramente é mais do que alguns dias atrás do código-fonte. Além disso, as instruções estão disponíveis especificamente para o Amazon Linux:

sudo yum localinstall --nogpgcheck http://nodejs.tchol.org/repocfg/amzn1/nodejs-stable-release.noarch.rpm
sudo yum install nodejs-compat-symlinks npm.

npm deve instalar em /usr/bin/npm , que é um link simbólico para /usr/lib/nodejs/npm/bin/npm-cli.js. Claro, com algumas das modificações feitas em seu PATH, é possível que npm não seja encontrado. echo $PATH (como root) deve se parecer com:

/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

Um dos problemas comuns em instalações anteriores com npm fail é um cache corrompido - limpe o cache do npm ( npm cache clear ) e veja se você tem algum sucesso. É claro que instalar um pacote globalmente precisa ser feito como root.

    
por 22.05.2012 / 05:06