CentOS에 Node.JS를 어떻게 설치합니까?


131

Node.js에 대한 많은 설치 지침을 찾았지만 모두 너무 복잡해 보입니다. 저는 슈퍼 시스템 관리자는 아니지만 해결할 수 있습니다. 시스템에 yum이 있지만 node.js 패키지를 찾지 못했습니다. 서버에서 코드를 컴파일하는 방법 또는 어디에 넣을 지 잘 모르겠습니다.


모두에게 큰 답변을 주셔서 감사합니다. nodejs와 npm을 모두 설치할 수 있다고 생각합니다! 최고
qodeninja


... EPEL 사용 (아직 저장소가없는 경우 설치 지침 : rackspace.com/knowledge_center/article/… )
geerlingguy

EPEL은 더 이상 작동하지 않거나 Centos 7에서는 작동하지 않는다고 생각합니다.
jcollum

답변:


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

이를 위해서는 Python 2.6 ./configure이상 이 필요합니다 . python2.7필요한 경우 1 행에서 가리 키도록 "configure"파일을 수정할 수 있습니다 .

RPM 패키지를 만들려면 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

이제 nodejs패키지를 만드십시오 :

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

그런 다음 버전을 설치하고 확인하십시오.

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

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

출처 : https://github.com/jordansissel/fpm/wiki/PackageMakeInstall


3
하지만 내가 올바르게 설치했다고 가정합니까? 내가 뭘 알아?
qodeninja

9
나는 yum install gcc-c ++를 포함해야했다
Yehosef

17
기술적으로는 정확하지만 모든 종류의 유지 관리 성 또는 반복성에 대해서는 필요한 모든 시스템의 소스에서 수동으로 빌드 및 설치하는 대신 RPM (또는 배포판의 패키지가 무엇이든)을 통해 패키지를 관리하는 것이 좋습니다. 아래의 여러 답변은 사전 빌드 된 패키지에 연결됩니다.
Jason Antman

5
RPM을 통해 Node.JS와 모든 생태계를 관리하는 것은 현재 실용성이 떨어지고 있으며 Node와 여러 모듈 패키지를 포함하는 yum 저장소를 간단히 실행 한 사람이라고 말합니다.
jgoldschrafe

5
@IsaacRabinovitch 그들은 if파이썬 2.5까지 나오지 않은 삼항을 추가했습니다 . CentOS는 시스템 Python을 사용자 정의 패치 버전 2.4로 페깅하는 RHEL 경로를 따르기 때문에 내 솔루션이 대신에 yum install python26 python26-devel실행 python26 configure되었습니다 ./configure. 그런 다음 Makefile파이썬 스크립트도 실행 PYTHON하기 때문에 거기에 변수 python26대신을 정의했습니다 python. 또한, g++거기 에 필요할 것이므로 아직하지 않은 경우 yum install gcc-++.
행크 게이

64

CentOS 6.x가 있고 EPEL 저장소를 활성화 한 경우 yum을 사용하여 node / npm을 설치할 수 있습니다.

$ sudo yum install npm

설치가 완료된 후 노드가 올바르게 설정되었는지 확인하십시오.

$ node -v

(와 같은 것을 반환해야합니다 v0.10.36).

이후 버전의 Node.js (예 : 4.x, 5.x 등)를 원하는 경우 EPEL 대신 Nodesource yum 리포지토리 를 사용할 수 있습니다 .


2
이것은 CentOS 6.4 시스템에서 아름답게 작동했으며 노드와 npm을 제공했습니다. 최신 src tarball 0.10.15에서 조금 떨어져서 노드 0.10.13을 얻었습니다. '원본에서 설치'옵션보다 우선적으로 눈에 띄려면 더 많은 투표가 필요합니다.
Neek

1
에 따라 EPEL의 REPO를 설치합니다.
Lee Chee Kiam

1
Enable epel repository run을 업데이트 yum install -y epel-release하려면 yum으로 node 및 npm을 설치할 수 있습니다.
svassr

v4.2.x 용 yum과 작동하는 epel 또는 epel-release를 얻을 수 없습니다. 아래의 nave.sh 답변은 아름답게 작동했습니다.
jcollum

1
yum을 통해 설치하면 매우 오래된 버전 v0.10.42가 제공됩니다. yum / rpm을 통해 Node를 설치하여 최신 버전 (현재 5.9.0)을 얻으려면 어떻게해야합니까?
dokaspar

27

요점 "패키지 관리자를 통해 Node.js 설치" 에는 CentOS에 nodejs를 설치하기위한 지침이 더 이상 포함되어 있지 않습니다. Fedora 18부터 nodejs는 표준 리포지토리의 일부가되었습니다. "epel-fedora-nodejs" repo를 시도 하고 더 이상 업데이트되지 않아 버전이 오래된 0.6.0으로 유지됩니다.

좋은 소식은 우리가 가지고 있다는 것입니다 본당 우리를 돕기 위해, 노드에 대한 가상 환경을.

https://github.com/isaacs/nave

nodejs 설치는 이제 매우 쉽습니다.

$ 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

nave.sh 파일에서 최신 dist 구조 인 nodejs와 일치하도록 로컬 URL을 변경해야 할 수도 있습니다. 0.11.0의 경우 nave.sh가 다음 URL을 갖도록 변경했습니다.

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


1
nodejs.tchol.org는 지금 죽었습니다
explunit

@ explunit 나는 대답을 업데이트합니다. 본당을보십시오.
user974312

참고로이 사용자에게만 설치하는 것 같습니다. 전체 시스템에 설치하려면 : ./nave.sh usemain <사용자 버전>
awl

"nodejs는 표준 리포지토리의 일부가되었습니다"– CentOS 7에서는 매우 오래된 버전입니다. 설치된 버전은 v10.x입니다 (IT 부서에서 사용하는 CentOS).
jcollum

13

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
노드 프로젝트에 기여할 계획이 없다면 github 버전이 아닌 릴리스 된 버전을 사용해야합니다.
BT

11

[편집] 아래의 댓글에서 nodejs.tchol.org 사이트가 스팸 사이트 (sic!) 를 가리키고 있음을 지적 해 주셔서 감사합니다 . 따라서이 답변이 더 이상 작동하지 않습니다. 사용하지 마십시오!

Chris가 자신의 솔루션에서 설명한 방법이 CentOS 5.4에서 작동한다는 것을 확인할 수 있습니다 (1 분 전에 수행했습니다 :))

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

추신 : 물론 설치하려면 루트 (또는 sudo를 사용해야 함) ..

소스에서 설치하는 것 (항상 옵션 임)은 여전히 ​​대안이있을 수 있습니다. 여기에서 "node.js가 2012 년 12 월 현재 Fedora Rawhide에 채택되어 Fedora 18에서 사용 가능함"을 읽었습니다 . 따라서 결국 표준 CentOS 저장소에 들어갈 수 있습니다.

이것 좀 볼게요 ..


3
이것은 CentOS 6에서 아름답게 작동했습니다. 감사합니다!
KyleFarris

12
"nodejs.tchol.org"는 지금 죽었다
David Newcomb

2
따라서 소스에서 설치해야합니다. 두려워하지 마십시오.
John Hunt

2
@JohnHunt 소스에서 설치하면 더 이상 완전히 제거 할 수 없습니다. Ruby에서도 이와 동일한 문제가 발생했습니다. 다행스럽게도 VM 이미지를 롤백 할 수 있습니다 ... 소스에서 설치한다는 것은 설치하려는 패키지에 대한 깊은 이해가 필요하다는 것을 의미합니다. 수천 개의 리눅스 패키지가 있다는 것을 고려할 때 이것은 옵션이 아닙니다!
Christian

1
"위의 링크"? 답변은 투표에 따라 정렬되며 Chris의 답변은 이제 귀하의 답변입니다.
Isaac Rabinovitch

10

위에서 언급했듯이 "tchol.org"는 사라졌으며 CentOS 사람들은 패키지 관리자의 사용을 포기하거나 다른 OS로 전환하는 것을보고 있습니다. 나는 실험적 / dev 상자를 제외한 모든 이전의 작업에 대해 나 자신과 계약을 맺었습니다.

다행히도 http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/ 에서 rpm을 계속 사용할 수 있습니다.

repo-installer의 rpm을 무시하면 yum이 기능이없는 사이트로 연결됩니다. 너무 쓸모 없게 될 때까지는 시간이 좀 필요합니다

새로운 레포지토리를 위해 눈을 뜨고 다시 찾으면 다시 게시하겠습니다.


귀하의 링크에서 0.6 버전은 이미 사용되지 않습니다. 그것은 RHEL / CentOS는 정말 좋은 옵션이 점을 고려 홀수 인 지금이없는 것 같다 레드햇 자체가 Node.js를의 PaaS를 제공
explunit

8

이것은 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
Python 2.7이 저장소에 없으므로 CentOS 5.10에서 Python 2.6을 사용해야합니다.
ohho

7

다른 답변에 나열되지 않은 접근법이 하나 더 있습니다 .0.8.6 이후게시 된 Linux의 바이너리 배포판을 사용하는 것입니다

내가 사용하는 스크립트는 다음과 같습니다.

# 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

또는 특정 버전을 원할 경우 (예 : 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

CentOS 6.3에서는 node 및 npm 명령이 일반 사용자 또는 sudo에서 작동하도록 다음 링크를 추가해야했습니다. 버전에 따라 필요하지 않을 수 있습니다.

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

솔직히 CentOS / RHEL에서 node.js의 상황은 node.js를 포함하는 저장소가 없기 때문에 다소 나쁩니다 ( 관련 질문 참조 ). 이 답변은 소스에서 컴파일 할 때 언급 한 것과 같은 단점이 있습니다.


7

위의 답변은 구식입니다

루트로

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

그리고 당신은 끝났습니다.

로 설치를 확인하십시오

node -v

curl의 내 버전이 URL SSL 인증서의 서명 기관을 좋아하지 않아서 스크립트가 자동으로 실패합니다. curl -k 옵션을 사용하여 지나칠 수 있습니다.
스파이크 윌리엄스

또한 위의 curl 명령에 -k를 추가 한 후에는 다운로드되는 "setup"스크립트에서 해당 도메인의 curl 다운로드에 대한 참조를 업데이트해야합니다. 그런 다음 bash를 사용하여 해당 스크립트를 수동으로 실행하십시오.
스파이크 윌리엄스

5

nvm안전하고 쉽게 노드 설치를 처리한다고 언급 한 사람 은 아무도 없습니다 https://github.com/creationix/nvm ? 나는 그것이 매우 유용하다고 생각합니다.

너무 많은 스크립팅없이 노드 릴리스 파일 트리 등 사용자 정의 rpm 패키지를 구축에도 유용 latest-node, wget, ./configure, make, make installㅋ ㅋ ㅋ ㅋ.

nvm install 0.10.9

릴리스에 따라 바이너리를 다운로드하거나 소스 코드를 컴파일합니다.


오프라인 설치가 있습니까?
patel

4

Node.js v4 LTS Argon의 경우 RHEL, CentOS 또는 Fedora에서 루트로 실행하십시오.

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

Node.js v5의 경우 :

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

또는 Node.js 0.10의 경우 :

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

그런 다음 루트로 설치하십시오.

yum -y install nodejs

출처 : https://nodejs.org/en/download/package-manager/


CentOS 7.2에서 작동하는 유일한 답변입니다. 그리고 매우 빠르고 완벽하게 작동했습니다.!
writeToBhuwan

권장 사항 : GitHub의 NVM 프로젝트를 방문하여 README : github.com/creationix/nvm#installation
Kay V

3

여기에 .spec 파일과 함께 간단한 지시 사항이 있습니다.

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

소스에서 이것을 컴파일 할 것이므로 시스템 (gcc 및 친구들)에서 패키지를 작성하는 데 필요한 모든 패키지가 있는지 확인해야합니다. 이 지시 사항 세트는 RPM을 빌드하기위한 것이므로 필요한 패키지가 누락 된 경우 rpmbuild에서 먼저 설치해야하는 패키지를 알려줍니다.


1
서버 결함에 오신 것을 환영합니다! 이것이 이론적으로 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함시키고 참조 할 수있는 링크를 제공하는 것이 바람직 합니다.
user9517

또한 링크는 / usr / src / redhat을 참조하는데, CentOS 5 설치에는 존재하지 않는 것 같습니다 (올바르게 이해하면 / usr / local / src에 있습니다)
Kato

2
최근의 변경 사항으로 인해 사람들은 Python 설치를 업데이트해야합니다 (또는 Python 2.4를 사용하는 CentOS 서버에서는 구성이 작동하지 않습니다). 정보를 새로 고치고 여기에 배치 해보십시오.
Tim Post

3

npm도 필요합니다

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

에이미가 아니라 노드와 함께 제공됩니다.
ThomasReggi

3

nodebrew 를 사용할 수 있습니다 . $ 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

우분투의 경우 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

질문은 CentOS를위한 것입니다
jcollum

2

다음은 centOS 7에 노드 v0.10.36을 설치 한 Dockerfile입니다.

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

버전 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

https://nodejs.org/dist/latest/ 폴더를 확인 하여 최신 버전의 다운로드 링크를 찾으십시오.


이것은 Plesk를 실행하는 CentOS 서버에서 저를 구했습니다. gcc가 너무 오래되어 소스에서 최신 버전 (5)을 빌드하는 데 실패했습니다. gcc를 업데이트하지만 일반적으로 yum을 통해 수동으로 업데이트하면 Plesk가 비명을 지르는 아이가됩니다.
twistedpixel

4.x 안정적인 tar가 있습니까? 몇 가지 버전 변경 후에도 대답이 더 좋습니다.
jcollum

배포 판별 설치를 찾을 수있는 최신 배포 폴더에 대한 링크를 포함하도록 답변을 편집했습니다.
Evan Siroky 2016 년

1

아래 코드는 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

더 이상 작동하지 않습니다 . http://nodejs.tchol.org 는 더 이상 온라인 상태가 아닙니다.


예전에는 작동했습니다. 그 기계는 더 이상 존재하지 않습니다.
rox0r

1

얼마 전에 RHEL 5.8에서이 설치 작업을 직접 수행했습니다. 불행히도 nodejs.tchol.org가 오프라인 상태가 된 경우 유일한 옵션은 소스에서 빌드하는 것입니다.

그러나 빌드 스크립트에는 RHEL의 기본 Python 버전에서 작동하지 않는 Python 코드가 포함되므로 빌드 프로세스가 약간 복잡해졌습니다. 많은 시행 착오 (그리고 많은 인터넷 검색) 후에 필자는 기본적으로 필요한 다음 작업을 수행하는 단계를 설명하는이 블로그 게시물을 발견했습니다.

에이. Python 2.6 설치 b. 해당 버전의 python을 대체 버전으로 설정 한 다음 기본값으로 설정하십시오. c. node.js 구성 및 설치 d. Python을 기본 2.4 버전으로 다시 전환합니다.

핵심은 나중에 파이썬 2.4로 다시 전환해야한다는 것입니다. 그렇지 않으면 yum과 같은 간단한 것들이 실패합니다.

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


1

최상위 답변을 사용하여 설치 한 후 Sudo 권한이없는 전역 모듈 (-g)을 설치할 수 없습니다. NPM 업데이트에 오류가 표시되었습니다. 아래 방법이 나에게 완벽하게 작동하면 SU 또는 SUDO 권한이 필요하지 않습니다.

아래의 메소드 ( https://gist.github.com/isaacs/579814 ) 에서 Node.js와 NPM을 설치 했지만 해당 페이지에 deesejohn이 게시 한 의견의 조언에 따라 두 줄의 명령을 수정했습니다.

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

사용하여 설치된 버전을 확인 node -v하고npm -v

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.