Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I've found numerous installation instructions for Node.js but they all seem so complicated -- I'm not a super sys admin but I can get around. I have yum on the system, but I didn't find any node.js packages, and I'm not sure how to compile code on the server or where to put it.

share|improve this question
    
Thanks for the great answers everyone. I do believe you can yum install both nodejs and npm now! awesome –  qodeninja Aug 14 '12 at 20:56
    
    
...with EPEL (install instructions if you don't already have the repo: rackspace.com/knowledge_center/article/…). –  geerlingguy Jan 2 at 4:23
add comment

14 Answers

up vote 87 down vote accepted
su - 
yum install 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

Note that this requires Python 2.6+ to use ./configure above. You can modify the "configure" file to point to python2.7 in line 1 if necessary.

To create an RPM package, you can use 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

Now make the nodejs package:

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

Then install and check the version:

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

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

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

share|improve this answer
2  
but thats assuming I have make installed right? what id I dont? –  qodeninja Aug 9 '11 at 16:59
7  
I needed to include yum install gcc-c++ –  Yehosef Jun 3 '12 at 16:23
10  
While this is technically correct, for any sort of maintainability or repeatability, it is HIGHLY recommended to manage packages via RPM (or whatever your distro's packaging is) rather than manually building and installing from source on every machine where it's needed. A number of the answers below link to pre-built packages. –  Jason Antman Aug 29 '12 at 19:35
3  
Trying to manage Node.JS and any of its ecosystem via RPM right now is an exercise in futility, and I say this as someone who briefly ran a yum repo containing Node and a number of module packages. –  jgoldschrafe Oct 25 '12 at 11:24
1  
@IsaacRabinovitch They added a ternary if, which didn't come about until Python 2.5. Since CentOS follows the RHEL path of pegging the system Python to some custom-patched version of 2.4, my solution was to yum install python26 python26-devel and then execute python26 configure instead of ./configure. Then, since the Makefile also executes Python scripts, I defined the PYTHON variable in there to be python26 instead of python. Also, you're going to need g++ on there, so if you haven't already, you should yum install gcc-++. –  Hank Gay Mar 8 '13 at 16:13
show 8 more comments

If you have CentOS 6.x, and have enabled the EPEL repository, you can use yum to install node/npm:

$ sudo yum install npm

After the installation is complete, check to make sure node is setup properly:

$ node -v

(Should return something like v0.10.4).

share|improve this answer
2  
This worked beautifully on my CentOS 6.4 system and gave me node and npm. I got node 0.10.13, just a little off the latest src tarball 0.10.15. It seems this need upvoting more to stand out as it trumps the 'install from source' option. –  Neek Aug 7 '13 at 8:53
add comment

The gist "Installing Node.js via package manager" does NOT contain instructions for installing nodejs on CentOS any more. Since Fedora 18, nodejs becomes part of the standard repo. I try "epel-fedora-nodejs" repo, and find it no longer update, leaving the version at the outdated 0.6.0.

The good news is that, we have nave, a Virtual Environments for Node, to help us.

https://github.com/isaacs/nave

Installing nodejs is dead easy now.

$ 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

In the nave.sh file, you may have to change the local urls to the match with the latest dist structure of nodejs. For 0.11.0 I changed the nave.sh to have the following URL

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

share|improve this answer
    
nodejs.tchol.org is dead now –  explunit Feb 15 '13 at 17:54
    
@explunit I just update the answer. Please try nave. –  user974312 Feb 26 '13 at 15:14
    
FYI This seems to install it for this user only. If you want to install it for the entire system: ./nave.sh usemain <your version> –  awl Apr 23 '13 at 20:23
add comment

For 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
share|improve this answer
    
You should be using a released version not the github version, unless you're planning on contributing to the node project. –  B T Sep 27 '13 at 23:33
add comment

I can confirm that the method Chris explained in his solution does work in CentOS 5.4 (i've done it a minute ago :))

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: of course you must be root (or use sudo) in order to install that..

Edit: thank you David for pointing out in the comments below that the nodejs.tchol.org site seems not to be active anymore..

Besides installing from source (which is always an option) maybe there is still an alternative: here I read that "node.js has been accepted into Fedora Rawhide as of December 2012 and will be available in Fedora 18.", so maybe it will eventually get into the standard CentOS repositories

I'll have a look at this..

share|improve this answer
3  
This worked beautifully on CentOS 6. Thanks! –  KyleFarris Jul 2 '12 at 20:52
11  
"nodejs.tchol.org" is dead now –  David Newcomb Dec 10 '12 at 12:54
2  
Hence you should just install from source. Don't be afraid. –  John Hunt Jan 3 '13 at 9:27
2  
@JohnHunt Installing from source means you can't cleanly uninstall any more. I've had this same problem with Ruby. Fortunately, I could just rollback the VM image... Installing from source means you need to have deep understanding of the package you're installing. Considering there are thousands of linux packages, this is not an option! –  Christian Jan 24 '13 at 8:41
1  
"The link above"? Answers are sorted by vote, and Chris's is now below yours. –  Isaac Rabinovitch Mar 9 '13 at 6:07
show 3 more comments

As noted above, "tchol.org" is gone, leaving CentOS folks looking at either abandoning use of a package manager, or switching to another OS. I made a pact with myself against every doing the former (again) on all but experimental / dev boxes.

Fortunately, there are rpms still available at: http://patches.fedorapeople.org/oldnode/stable/el6/x86_64/

Just ignore the rpm for the repo-installer, which directs yum to the defunct site. That should buy us a little time, unless / until they become too obsolete.

I'll keep my eyes open for newer repos, and post back if I find them.

share|improve this answer
    
Thank you! Awesome answer. –  rox0r Jan 28 '13 at 2:07
    
I would say the 0.6 version in your link is already quite obsolete. It seems there are really no good options for RHEL/CentOS right now, which is odd considering that Red Hat itself offers node.js PaaS –  explunit Feb 16 '13 at 14:12
add comment

There's one more approach I haven't seen listed in any of the other answers, and that is to use the binary distributions for Linux which have been published since 0.8.6

Here's the script I use:

# 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

Or, if you want a specific version (e.g. to stay on the 0.8 series):

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

And for me on CentOS 6.3, I had to add the following links so that node and npm commands worked from either regular user or from sudo. Might not be needed depending on your version.

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

Frankly, the situation for node.js on CentOS/RHEL is rather bad, as none of the repos include node.js (see related question here). This answer has the same disadvantages as previously mentioned for compiling from source.

share|improve this answer
add comment

This worked for me on 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
share|improve this answer
    
I have to use python 2.6 on my CentOS 5.10, as python 2.7 is not in repo. –  ohho Feb 25 at 4:03
add comment

No one mentioned nvm to handle (multiple) safely and easily Node installations https://github.com/creationix/nvm? I find it so useful.

Even useful to build a Node release files tree and so custom rpm packages without scripting too much, latest-node, wget, ./configure, make, make install blah blah.

nvm install 0.10.9

Will download binaries or compile source code according to the release.

share|improve this answer
add comment

I have some pretty straight-forward instructions, along with a .spec file here:

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

You'll be compiling this from source, so you will need to ensure that you have all of the necessary packages for doing that on your system (gcc and friends). This set of instructions is for building an RPM, so if you are missing any required packages, rpmbuild will let you know which ones you need to install first.

share|improve this answer
    
Welcome to Server Fault! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. –  Iain Nov 14 '11 at 16:20
    
Also, the link refers to /usr/src/redhat, which doesn't seem to exist in my CentOS 5 install (it's at /usr/local/src if I understand correctly) –  Kato Nov 17 '11 at 20:11
2  
Recent changes would also require people to update their Python installation (or configure will not work on any CentOS server still using Python 2.4).. Consider freshening up the information and placing it here? –  Tim Post Oct 3 '12 at 23:43
add comment

For Ubuntu, this worked for me for version 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
share|improve this answer
add comment

You'll also need npm

git clone https://github.com/isaacs/npm.git
cd npm
sudo make install
share|improve this answer
    
not amy more it comes with node. –  ThomasReggi Dec 28 '12 at 20:15
add comment

Below code worked pretty well on 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

It does not work anymore, http://nodejs.tchol.org is not online anymore.

share|improve this answer
    
It used to work. That machine doesn't exist anymore it looks like. –  rox0r Jan 28 '13 at 2:06
add comment

I went thru the task of doing this installation myself on RHEL 5.8 not too long ago. Unfortunately, with nodejs.tchol.org going offline, the only option is to build it from source.

However, the build process got quite a bit complicated as the build script involves python code that doesn't work with the default version of Python on RHEL. After a lot of trial and error (and a lot of googling), I found this blog post which basically describes a step to step on the following tasks required.

a. Install Python 2.6 b. Setup that version of python as an alternate version, then setting it as default c. configure and install node.js d. Switching Python back to the default 2.4 version.

The key is that you should switch back to Python 2.4 afterwards; otherwise, simple things like yum will fail.

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.