Como você instala o Node.JS no CentOS?


131

Eu encontrei inúmeras instruções de instalação para o Node.js, mas todas elas parecem muito complicadas - eu não sou um administrador super-sys, mas posso me locomover. Tenho o yum no sistema, mas não encontrei nenhum pacote node.js. Não sei como compilar código no servidor ou onde colocá-lo.


Obrigado pelas ótimas respostas a todos. Eu acredito que você pode instalar o yum tanto o nodejs quanto o npm agora! incrível
qodeninja


... com EPEL (instruções de instalação, se você ainda não possui o repositório: rackspace.com/knowledge_center/article/… ).
precisa saber é o seguinte

Eu não acho que as coisas EPEL funciona mais - ou não funciona no Centos 7.
jcollum

Respostas:


139
su - 
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install

Observe que isso requer que o Python 2.6+ seja usado ./configureacima. Você pode modificar o arquivo "configure" para apontar para a python2.7linha 1, se necessário.

Para criar um pacote RPM, você pode usar o FPM :

# wget http://nodejs.org/dist/node-latest.tar.gz
# tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
# ./configure --prefix=/usr/
# make
# mkdir /tmp/nodejs
# make install DESTDIR=/tmp/nodejs/
# tree -L 3 /tmp/nodejs/
/tmp/nodejs/
└── usr
    ├── bin
    │   ├── node
    │   ├── node-waf
    │   └── npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ├── include
    │   └── node
    ├── lib
    │   ├── dtrace
    │   ├── node
    │   └── node_modules
    └── share
        └── man

Agora faça o nodejspacote:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib

Em seguida, instale e verifique a versão:

# rpm -ivh nodejs-0.8.18-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:nodejs                 ########################################### [100%]

# /usr/bin/node --version
v0.8.18

Fonte: https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
mas isso é assumindo que eu fiz instalado certo? o que eu não faço?
Qodeninja 9/08

9
Eu precisava incluir o yum install gcc-c ++
Yehosef

17
Embora isso seja tecnicamente correto, para qualquer tipo de manutenção ou repetibilidade, é ALTAMENTE recomendável gerenciar pacotes via RPM (ou qualquer que seja a embalagem da sua distribuição) em vez de criar e instalar manualmente a partir da fonte em todas as máquinas onde for necessário. Várias respostas abaixo apontam para pacotes pré-criados.
Jason Antman

5
Tentar gerenciar o Node.JS e qualquer um de seus ecossistemas via RPM agora é um exercício de futilidade, e digo isso como alguém que executou brevemente um repositório yum contendo o Node e vários pacotes de módulos.
Jgoldschrafe 25/10/12

5
@IsaacRabinovitch Eles adicionaram um ternário if, que não surgiu até o Python 2.5. Desde CentOS segue o caminho RHEL de atrelar o Python sistema para uma versão corrigida por encomenda de 2,4, minha solução foi yum install python26 python26-develem seguida, executar python26 configureem vez de ./configure. Então, como Makefiletambém executa scripts Python, eu defini a PYTHONvariável existente em python26vez de python. Além disso, você vai precisar g++de lá, então, se ainda não o fez, deveria yum install gcc-++.
Hank Gay

64

Se você possui o CentOS 6.xe ativou o repositório EPEL , pode usar o yum para instalar o node / npm:

$ sudo yum install npm

Após a conclusão da instalação, verifique se o nó está configurado corretamente:

$ node -v

(Deve retornar algo como v0.10.36).

Se você quiser versões posteriores do Node.js (por exemplo, 4.x, 5.x, etc.), poderá usar o repositório yodes da Nodesource em vez do EPEL.


2
Isso funcionou muito bem no meu sistema CentOS 6.4 e me deu o nó e o npm. Eu peguei o nó 0.10.13, apenas um pouco do último src tarball 0.10.15. Parece que essa necessidade de votar mais se destaca, pois supera a opção 'instalar a partir da fonte'.
Neek

1
Siga isto para instalar o EPEL repo.
Lee Chee Kiam

1
para atualizar ativar a execução do repositório epel yum install -y epel-release, você pode instalar o node e o npm com o yum.
svassr

Não consegui que o epel ou release do epel funcionasse com o yum para a v4.2.x. A resposta nave.sh abaixo funcionou lindamente.
jcollum

1
A instalação via yum me fornece uma versão muito antiga v0.10.42 ... Como instalar o Node via yum / rpm para obter a versão mais recente (atualmente 5.9.0)?
Dokaspar 18/03/16

27

A essência "Instalando o Node.js. via gerenciador de pacotes" NÃO contém mais instruções para instalar o nodejs no CentOS. Desde o Fedora 18, o nodejs se torna parte do repositório padrão. Eu tento o repositório "epel-fedora-nodejs" e o encontro não é mais atualizado, deixando a versão no 0.6.0 desatualizado.

A boa notícia é que, temos nave , um ambientes virtuais para o nó, para nos ajudar.

https://github.com/isaacs/nave

A instalação do nodejs está fácil agora.

$ wget https://raw.github.com/isaacs/nave/master/nave.sh
$ chmod +x nave.sh
$ ./nave.sh install 0.8.8
$ ./nave.sh use 0.8.8
$ node -v  
v0.8.8

No arquivo nave.sh, pode ser necessário alterar os URLs locais para corresponder à estrutura dist mais recente do nodejs. Para 0.11.0, mudei o nave.sh para ter o seguinte URL

" http://nodejs.org/dist/v $ version / node-v $ version-linux-x64.tar.gz"


1
nodejs.tchol.org está morto agora
explunit

@explunit Acabei de atualizar a resposta. Por favor, tente nave.
user974312

FYI Isso parece instalá-lo apenas para este usuário. Se você quiser instalá-lo para todo o sistema: ./nave.sh usemain <a sua versão>
furador

"nodejs se torna parte do repositório padrão" - no CentOS 7 está incrivelmente desatualizado. A versão instalada é a v10.x (no CentOS que nosso departamento de TI usa de qualquer maneira).
jcollum

13

Para o CentOS

yum install gcc-c++ make git
cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install

2
Você deve usar uma versão lançada, e não a versão github, a menos que esteja planejando contribuir com o projeto do nó.
BT

11

[Editar] Obrigado David por apontar nos comentários abaixo que o site nodejs.tchol.org agora está apontando para um site de spam (sic!) .. Portanto, esta resposta não funciona mais, não a use!

Posso confirmar que o método que Chris explicou em sua solução funciona no CentOS 5.4 (eu fiz isso há um minuto atrás :))

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

PS: é claro que você deve ser root (ou usar o sudo) para instalar isso.

Além de instalar a partir do código-fonte (que é sempre uma opção), talvez ainda haja uma alternativa: aqui li que "o node.js foi aceito no Fedora Rawhide a partir de dezembro de 2012 e estará disponível no Fedora 18." , então talvez acabe entrando nos repositórios padrão do CentOS

Vou dar uma olhada nisso ..


3
Isso funcionou muito bem no CentOS 6. Obrigado!
KyleFarris

12
"nodejs.tchol.org" está morto agora
David Newcomb

2
Portanto, você deve apenas instalar a partir da fonte. Não tenha medo.
John Hunt

2
@JohnHunt Instalar da fonte significa que você não pode mais desinstalar de forma limpa. Eu tive esse mesmo problema com Ruby. Felizmente, eu poderia reverter a imagem da VM ... Instalar a partir do código-fonte significa que você precisa ter um conhecimento profundo do pacote que está instalando. Considerando que existem milhares de pacotes Linux, esta não é uma opção!
Christian

1
"O link acima"? As respostas são classificadas por voto, e a de Chris agora está abaixo da sua.
Isaac Rabinovitch

10

Como mencionado acima, "tchol.org" desapareceu, deixando o pessoal do CentOS tentando abandonar o uso de um gerenciador de pacotes ou alternando para outro sistema operacional. Fiz um pacto comigo mesmo contra todos os que fizeram o primeiro (novamente) em todos, exceto nas caixas experimentais / dev.

Felizmente, ainda existem rpms disponíveis em: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Apenas ignore as rpm do repo-installer, que direciona o yum para o site desativado. Isso deve nos custar um pouco de tempo, a menos / até que se tornem obsoletos demais.

Vou manter meus olhos abertos para novos repositórios e postar de volta, se os encontrar.


Eu diria que a versão 0.6 no seu link já é bastante obsoleta. Parece que não há realmente boas opções para o RHEL / CentOS no momento, o que é estranho, considerando que a própria Red Hat oferece o node.js PaaS
explodiu

8

Isso funcionou para mim no CentOS 5.7:

yum install openssl-devel 
yum install python27
yum install gcc-c++
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v[tab]
python2.7 configure
make PYTHON=python2.7
make install

3
Eu tenho que usar o python 2.6 no meu CentOS 5.10, pois o python 2.7 não está no repositório.
ohho

7

Há mais uma abordagem que não vi listada em nenhuma das outras respostas, e é usar as distribuições binárias para Linux que foram publicadas desde 0.8.6

Aqui está o script que eu uso:

# get the latest stable binary 
latest_node=$(curl http://nodejs.org/dist/latest/SHASUMS.txt | grep 'linux-x64.tar.gz' | awk '{ print $2 }')
wget -O ~/nodestable.tar.gz http://nodejs.org/dist/latest/$latest_node
cd /usr/local/
sudo tar xzvf ~/nodestable.tar.gz --strip=1

Ou, se você quiser uma versão específica (por exemplo, permanecer na série 0.8):

wget http://nodejs.org/dist/v0.8.22/node-v0.8.22-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.22-linux-x64.tar.gz --strip=1

E para mim no CentOS 6.3, eu tive que adicionar os seguintes links para que os comandos node e npm funcionassem com o usuário comum ou com o sudo. Pode não ser necessário, dependendo da sua versão.

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

Francamente, a situação do node.js no CentOS / RHEL é bastante ruim, pois nenhum dos repositórios inclui o node.js (consulte a pergunta relacionada aqui ). Esta resposta tem as mesmas desvantagens mencionadas anteriormente para compilar a partir da fonte.


7

As respostas acima estão desatualizadas

COMO RAIZ

curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs

e você terminou.

verifique sua instalação com

node -v

Minha versão do curl não parece gostar da Autoridade de Assinatura do certificado SSL do URL e, portanto, o script falha silenciosamente. Você pode passar por isso usando a opção curl -k.
Spike Williams

Além disso, depois de adicionar -k ao comando curl acima, você também precisará atualizar a referência para curl downloads desse domínio no script "setup" que é baixado. Em seguida, execute esse script manualmente usando o bash.
Spike Williams

5

Ninguém mencionado nvmpara lidar com (várias) instalações de nós com segurança e facilidade https://github.com/creationix/nvm ? Eu acho isso muito útil.

Mesmo útil para construir um nó Arquivos de libertação árvore e pacotes rpm tão personalizados sem scripting muito, latest-node, wget, ./configure, make, make installblá, blá.

nvm install 0.10.9

Faz o download de binários ou compila o código fonte de acordo com o lançamento.


existe uma instalação offline?
Amit patel

4

Execute como root no RHEL, CentOS ou Fedora, para o Node.js v4 LTS Argon:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

Como alternativa para o Node.js v5:

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -

Como alternativa para o Node.js 0.10:

curl --silent --location https://rpm.nodesource.com/setup | bash -

Em seguida, instale, como root:

yum -y install nodejs

fonte: https://nodejs.org/en/download/package-manager/


A única resposta que funciona para o CentOS 7.2. E funcionou tão rápido e perfeitamente.!
WriteToBhuwan 2/16

Recomendação: visitar o projeto NVM no GitHub e obter as instruções definitivas do README: github.com/creationix/nvm#installation
Kay V

3

Eu tenho algumas instruções bastante diretas, juntamente com um arquivo .spec aqui:

http://www.chrisabernethy.com/installing-node-js-on-centos-redhat/

Você estará compilando isso a partir do código-fonte, portanto, precisará garantir que você tenha todos os pacotes necessários para fazer isso em seu sistema (gcc e amigos). Este conjunto de instruções é para a construção de um RPM, portanto, se você estiver perdendo algum pacote necessário, o rpmbuild informará quais você precisa instalar primeiro.


1
Bem-vindo à falha do servidor! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
user9517

Além disso, o link se refere a / usr / src / redhat, que não parecem existir em meus CentOS 5 instalar (é em / usr / local / src se eu entendi corretamente)
Kato

2
Mudanças recentes também exigiriam que as pessoas atualizassem sua instalação do Python (ou o configure não funcionará em nenhum servidor CentOS que ainda esteja usando o Python 2.4). Considere atualizar as informações e colocá-las aqui?
Tim Post

3

Você também precisará de npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install

não muito mais ele vem com nó.
ThomasReggi

3

Você pode usar um parafuso nodoso . $ curl -L git.io/nodebrew | perl - setup $ export PATH=$HOME/.nodebrew/current/bin:$PATH $ source ~/.bashrc $ nodebrew install-binary latest $ nodebrew use latest $ node -v


2

Para o Ubuntu, isso funcionou para mim na versão 0.4.10

cd /usr/local/src/
sudo wget http://nodejs.org/dist/node-v0.4.10.tar.gz
sudo tar zxvf node-v0.4.10.tar.gz 
cd node-v0.4.10/
sudo ./configure 
sudo make
sudo make install

pergunta é para CentOS
jcollum

2

aqui está o meu Dockerfile que instalou o nó v0.10.36 no centOS 7

FROM centos:7

RUN    yum -y update
RUN    yum -y install vi, vim, unzip, tar
RUN    yum -y install wget, curl, git

RUN    yum -y install epel-release
RUN    yum -y install npm

2

Minha resposta para a versão 4+:

yum -y install wget
wget https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-x64.tar.gz
tar xzf node-v4.0.0-linux-x64.tar.gz -C /usr/local
rm -rf node-v4.0.0-linux-x64.tar.gz
mv /usr/local/node-v4.0.0-linux-x64 /usr/local/node
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm

Verifique na pasta https://nodejs.org/dist/latest/ para encontrar o link de download da versão mais recente.


Isso me salvou no servidor CentOS executando o Plesk - a criação da versão mais recente (5) da fonte falha, pois o gcc está desatualizado. Eu atualizava o gcc, mas geralmente atualizava qualquer coisa manualmente via yum transforma o Plesk em uma criança que gritava.
twistedpixel

existe um alcatrão para 4.x estável? A resposta será melhor se sobreviver a algumas alterações de versão.
jcollum

Editei minha resposta para incluir um link para a pasta de distribuição mais recente, onde você pode encontrar a instalação específica da distribuição.
Evan Siroky

1

O código abaixo funcionou muito bem no CentOS 6

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

Ele não funciona mais, http://nodejs.tchol.org não está mais online.


Costumava funcionar. Parece que essa máquina não existe mais.
rox0r

1

Fiz a tarefa de fazer essa instalação no RHEL 5.8 há pouco tempo. Infelizmente, com o nodejs.tchol.org ficando offline, a única opção é construí-lo a partir da fonte.

No entanto, o processo de compilação ficou um pouco complicado, pois o script de compilação envolve código python que não funciona com a versão padrão do Python no RHEL. Depois de várias tentativas e erros (e muita pesquisa no Google), encontrei este post do blog que basicamente descreve um passo a passo nas seguintes tarefas necessárias.

uma. Instale o Python 2.6 b. Configure essa versão do python como uma versão alternativa e, em seguida, defina-a como padrão c. configurar e instalar o node.js d. Voltando ao Python para a versão 2.4 padrão.

A chave é que você deve voltar ao Python 2.4 posteriormente; caso contrário, coisas simples como yum irão falhar.

http://www.robeesworld.com/blog/31/installing_node_js_0_8_under_centos_5_8


1

Depois de instalar usando a resposta com a melhor classificação, não consegui instalar nenhum módulo global (-g) sem permissões do Sudo. A atualização do NPM mostrou erros. O método abaixo funcionou perfeitamente para mim, não há necessidade de permissões SU ou SUDO.

Instalei o Node.js e o NPM usando o método abaixo, retirado de ( https://gist.github.com/isaacs/579814 ), mas modifiquei duas linhas de comandos conforme o aviso de um comentário publicado por deesejohn nessa página.

cd
sudo yum install gcc-c++
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=$HOME/local
make install
curl -L https://www.npmjs.org/install.sh | sh

Verifique a versão instalada usando node -venpm -v

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.