public
Last active

Use one of these techniques to install node and npm without having to sudo. Discussed in more detail at http://joyeur.com/2010/12/10/installing-node-and-npm/ Note: npm >=0.3 is *safer* when using sudo.

  • Download Gist
node-and-npm-in-30-seconds.sh
Shell
1 2 3 4 5 6 7 8 9
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=~/local
make install # ok, fine, this step probably takes more than 30 seconds...
curl https://www.npmjs.org/install.sh | sh
only-git-all-the-way.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# this way is best if you want to stay up to date
# or submit patches to node or npm
 
mkdir ~/local
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
 
# could also fork, and then clone your own fork instead of the official one
 
git clone git://github.com/joyent/node.git
cd node
./configure --prefix=~/local
make install
cd ..
 
git clone git://github.com/isaacs/npm.git
cd npm
make install # or `make link` for bleeding edge
take-ownership.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# take ownership of the folders that npm/node use
# please don't do this if you don't know what it does!
sudo mkdir -p /usr/local/{share/man,bin,lib/node,include/node}
sudo chown -R $USER /usr/local/{share/man,bin,lib/node,include/node}
 
# now just a pretty vanilla node install
# let it use the default paths, but don't use sudo, since there's no need
mkdir node-install
curl http://nodejs.org/dist/node-v0.4.3.tar.gz | tar -xzf - -C node-install
cd node-install/*
./configure
make install
 
# now the npm easy-install
curl https://www.npmjs.org/install.sh | sh
use-nave-no-shell.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# use nave, but without a subshell
# note that we're doing "usemain" instead of "use"
 
mkdir ~/.nave
cd ~/.nave
wget http://github.com/isaacs/nave/raw/master/nave.sh
sudo ln -s $PWD/nave.sh /usr/local/bin/nave
 
# take ownership
# please don't do this if you don't know what it does!
sudo mkdir -p /usr/local/{share/man,bin,lib/node,include/node}
sudo chown -R $USER /usr/local/{share/man,bin,lib/node,include/node}
 
# install the latest stable nodejs in the "main" root.
nave usemain stable
 
curl https://www.npmjs.org/install.sh | sh
use-nave.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# this way is really handy if you want to test things
# in different versions of node and use stable release
# versions of things.
 
# make a folder where you want to keep this stuff.
 
mkdir ~/.nave
cd ~/.nave
wget http://github.com/isaacs/nave/raw/master/nave.sh
sudo ln -s $PWD/nave.sh /usr/local/bin/nave
 
# now you can forget about that folder.
# you never have to go back in there.
 
# to use a version of node in a virtual environment
nave use 0.4.8
 
# to install npm in that virtualenv
curl https://www.npmjs.org/install.sh | sh
 
# do stuff...
npm install whatever etc
 
# return to non-nave-land
exit
 
# use a different version of node..
nave use 0.4.6
# etc...
using-homebrew.sh
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# using Homebrew
 
# Note: `brew install npm` has problems, as of 2010-12-30.
# hopefully it will eventually be good and happy.
# As of npm@0.2.13, however, this is an option
 
PREFIX=$(brew --prefix)
 
# take ownership
# this will also let homebrew work without using sudo
# please don't do this if you don't know what it does!
sudo mkdir -p $PREFIX/{share/man,bin,lib/node,include/node}
sudo chown -R $USER $PREFIX/{share/man,bin,lib/node,include/node}
 
brew install node
 
# now install npm
# prefix will default to $(brew --prefix)
curl https://www.npmjs.org/install.sh | sh
xgd-freedesktop.org-style.sh
Shell
1 2 3 4 5 6 7 8 9 10
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
echo 'export npm_config_userconfig=$HOME/.config/npmrc' >> ~/.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=~/.local
make install
curl https://www.npmjs.org/install.sh | sh
yet-another-option.sh
Shell
1 2 3 4 5 6
# install node wherever.
# use sudo even, it doesn't matter
# we're telling npm to install in a different place.
 
echo prefix = ~/local >> ~/.npmrc
curl https://www.npmjs.org/install.sh | sh

Used the top one, and it worked great. Thanks :)

For me the 2nd one worked ^^ thx

First one worked perfectly, although on a Debian x64 512M RAM it did not perform in 30 seconds.

'install' finished successfully (3m23.933s)

HAH! NEVERMIND! Didn't work, > node works, > npm does not. I had created the ~/npm before i ran the script. I'll retry.

Edit: I retried after I cleaned up some node-related directories, binaries and installs. I uninstalled nodejs, the Aptitude(package manager) version of node from my machine and removed all node-related directories in ~.

The self-compiled node version created with the first script works perfectly :)

First option worked well for me once I realize that the path of node is important. I.E. I had node previously installed to usr/local not my ~/local. I pushed my ~/local to have higher precedence in the path and the npm installation worked without a hitch.

Addendum: As I had 'system' node and a local node installed, when I borked up my paths and the system node was running, all my paths were screwed when doing requires in my code, forcing the local 'node' to be my executable fixed all my path issues.

Ex: 'which node' returns a path to my ~/jbateman/local installation instead of /usr/local/bin

seems like someone is keeping ports up to date as well...

For the take-ownership script, you first need to create /usr/local/lib/node and /usr/local/include/node.

sudo mkdir -p /usr/local/{lib/node,include/node}

Thanks, Robert, good catch. Fixed.

The 2nd script (only-git-all-the-way.sh) has a wrong URL for cloning node. It should read:

git clone https://github.com/ry/node.git

instead of

git clone git://github.com/ry/node.git

If your on a MAC remember your ".bashrc" isn't used, it should be ".bash_profile"

Thanks for share!! good work!

For the only-git-all-the-way script, the location of node.git should be updated:
git://github.com/joyent/node.git

@rbotman: Thanks.

There's a reference to node-v0.2.5.tar.gz that should be replaced with node-latest.tar.gz.

There is one quite nasty error in only-git-all-the-way.sh example:

There should be
cd ~/local
before first git clone command so that things would end up to ~/local/node/ instead of ~/node/

Re: https://gist.github.com/579814#file_take_ownership.sh

Just a note: make install does not work without sudo.

Help !!
whenever the command
curl http://npmjs.org/install.sh | sh
is run on my computer I just end up with a gzip process that runs forever
and advice because i'm really struggling

Also if I try the git all the way i get this
node cli.js install -g
npm ERR! Could not read data for npm@1.0.0rc8
npm ERR! error installing npm@1.0.0rc8 Error: ECONNREFUSED, Could not contact DN
S servers
npm ERR! error installing npm@1.0.0rc8 at IOWatcher.callback (dns.js:53:15)
npm ERR! Error: ECONNREFUSED, Could not contact DNS servers
npm ERR! at IOWatcher.callback (dns.js:53:15)
npm ERR! Report this entire log at:
npm ERR! http://github.com/isaacs/npm/issues
npm ERR! or email it to:
npm ERR! npm-@googlegroups.com
npm ERR!
npm ERR! System CYGWIN_NT-5.1 1.7.8(0.236/5/3)
npm ERR! command "node" "/home/NJH/node-latest-install/npm/cli.js" "install" "-g
"
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/NJH/node-latest-install/npm/npm-debug.log
npm not ok

I have observed this as well. Cygwin is really terrible in how it
handles child processes. There is basically no way around this.

You can try curl http://npmjs.org/install.sh | npm_install=rc sh to
install the 1.0 release candidate, which handles Cygwin a little
better. But, really, the best answer is to either wait for a native
windows port of node, or use use something like VMWare or VirtualBox
to run an Ubuntu virtual machine.

May i know how to upgrade node.js? just run the same command again?

Hey devlim, try running one of these again, it should work (if you can remember, try to use the same one as last time, but either way it should work fine).

What is the rationale for installing to ~/local in so many of these?

I think it is to separate node and the node related tools from the rest of the system. This is preferrable since NodeJS is in rapid development and is rarely or never available from the package manager in it's latest version.

Since it is separated from the global program installation folders, it's not as easily lost and forgotten, not so much for disk space, perhaps, but more for the principle.

@brandondrew The point is that software you install and develop
should go somewhere you own and manage.

I install node and npm into /usr/local on my mac. I also have
chown'ed that directory to my user account. On servers and other
"production" machines that I'm not as intimate with, I install
everything into ~/local.

There are two points at work here:

  1. Don't do things you don't understand, or clobber things that aren't yours.
  2. Try very hard not to destroy your ability to revert to a "clean" environment.

If you install into /usr/local, you can always revert to the initial
state by removing that directory (and with it, all the user-installed
software). The system stuff will be in the base of /usr (or even the
top-level /lib, /var, etc.)

If you install into your home directory, you have only to log in as a
different user to see a pristine environment.

I recommend installing into your home directory if you aren't 100%
clear about what's going on in /usr/local, and comfortable manually
managing it.

On Mon, Apr 25, 2011 at 17:28, brandondrew
reply@reply.github.com
wrote:

It says "Software that you compile yourself should not go into /usr, it should go into your home directory. This is part of being a software developer."

That's an assertion without any explanatory rationale.  Dan Benjamin made a similar assertion a few years ago, but he asserted (if I recall correctly) that you should put everything in /usr/local/bin/.

Such assertions will kowtow some people into complying, but that's a shame.  I think it's much better to ask for, and give, reasons.

Please understand that I'm not necessarily disagreeing: I'm just saying "why there!?".   I tend to agree that the home directory is better than /usr/local/bin, but /usr/local/bin was supposedly a convention for user-compiled stuff.  ~/local seems to be a brand-new convention, that I've only seen with Node.js.

Reply to this email directly or view it on GitHub:
https://gist.github.com/579814

I'm getting the same error as edlongman trying to run curl http://npmjs.org/install.sh | sh (Cygwin)

Hey guys make sure that the last line of code in your bashrc file is not a comment as the appending will lead you to a commented out PATH=$HOME/local/bin:$PATH which means the install will fail.

I updated the code at a fork of the gist here: https://gist.github.com/957346

If there is a way of doing a pull request for a gist I can't seem to find it.

When I did the install as superuser (take-ownership) route I got an error:
Could not install the file '/usr/local/lib/pkgconfig/nodejs.pc'

anyone have any ideas?

In referance to the second method "only_git_all_the_way.sh". I ran into a problem with installing npm. The way that I resolved the issue was to once my .bashrc file was updated (line 5), I added source ~/.bashrc to the script. This put node in the path and installing npm worked just fine.

@jtmkrueger: the pkgconfig command is used by various build utilities to determine what you have installed on a system without needing to dig through output from various platform-specific package managers (e.g. build sequence needs to know where you have installed lua, so it looks for /usr/lib/pkgconfig/lua.pc, /usr/local/lib/pkgconfig/lua.pc, etc until it finds one and in that file there is a listing of where the various lib and bin dirs are for that package.) If this is the first major package you have installed in /usr/local then it is possible that the pkgconfig directory does not exist. Try running (as root/sudo) "mkdir /usr/local/lib/pkgconfig" and then install again.

Please fix only-git-all-the-way.sh as per the above comment.

First one worked! Woot! This should be the default. I had problems with it the first two times I tried.

Hi i've got such problem with npm on ubuntu 11.04:
packages and npm automatically installed in folder /proc/7278/cwd/...
And then node.js can't load any installed module. I used this bash script:

mkdir ~/local
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc

# could also fork, and then clone your own fork instead of the official one

git clone git://github.com/joyent/node.git
cd node
./configure --prefix=~/local --without-ssl
make install
cd ..

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

Maybe anyone could help me: what if i want to install node.js to /media/lazersluts/nodejs, what should i do.
And wich files i should to remove excepts ~/local and ~/.bashrc to completely remove node.js. If i want to make fresh installation.
Thanks. And sorry for noobies and "excellent English" )

Update

Solved with

echo prefix = ~/local >> ~/.npmrc
curl http://npmjs.org/install.sh | sh

Why does

require('npm-name');

work only on partition where node.js installed? And doesn't on other partitions?

I had to do sudo make install in the first solution.

Also I had problems with npm: http://stackoverflow.com/questions/6383413/npm-install-issues-ubuntu-11-04

In Ubuntu, you may need to do sudo apt-get install libssl-dev before you can compile Node.

'install' finished successfully (12m33.358s)

None of these worked for me as node gave me an out of memory error trying to run the node cli.js command. I was eventually able to get it working by loading the .pkg file here https://sites.google.com/site/nodejsmacosx/

@triptych Were you using node master? If so, update today and
rebuild. Note that the git master is usually pretty unstable, so if
there's ever any problem, you should try with a released version, or
by checking out a release tag or the v0.4 branch, and building that.

On Mon, Sep 5, 2011 at 01:15, triptych
reply@reply.github.com
wrote:

None of these worked for me as node gave me an out of memory error trying to run the node cli.js command. I was eventually able to get it working by loading the .pkg file here https://sites.google.com/site/nodejsmacosx/

Reply to this email directly or view it on GitHub:
https://gist.github.com/579814

Thankyou, my node/npm install got corrupted "somehow" , the first method about worked for me

I tried the first one using cygwin and I'm stuck with this:

curl http://npmjs.org/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7156 100 7156 0 0 14785 0 --:--:-- --:--:-- --:--:-- 25466
tar=/usr/bin/tar
version:
tar (GNU tar) 1.25
Packaged by Cygwin (1.25-1)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
Installing without make. This may fail.
Failed to get tarball url for npm/latest

If I try the second, and run make install it seems to run forever at buid-doc.sh.

I had to add:

chmod 755 nave.sh

before line 10 in order for https://gist.github.com/579814#file_use_nave.sh to work properly. Did I miss something?

I am trying to install this using homebrew and I seeing the following permissions error.

Could not create /usr/local/lib/node_modules/___npm.npm
npm ERR! error installing npm@1.0.106 Error: EACCES, permission denied '/usr/local/lib/node_modules'
npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules'

It looks like the install for npm is failing:
curl http://npmjs.org/install.sh | sh

To get this working I added

chown -R YOUR_USER_NAME:admin local/include/
chown -R YOUR_USER_NAME:admin local/lib/

I probably could also have run it the install command with sudo like this:

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

but the point of this gist is to install node and npm without having to sudo. However, at the end of the title at the top of this gist it says that npm >=0.3 is safer when using sudo. I am not sure if that means that you should install using sudo or chown the directory to $USER

which node.js version is the latest who support i386 MacOSX 10.5.8 ?
i tryed all versions, looks like its not documented about... just node-v0.4.9 was working at last.. all other had :bad error: bad cpu errors and so on, any install failed later or earlyer.. if someone calls a file mac-install package or means it is for a mac, then it has in my opinion to be for macs and not just for lion. because then it is just a lion install ^^
otherwise i'm the terminalator with my pocketcalculator! :-P
can anyone help out, with a precompiled package for osx10.5.8, or can send me 1000 dollar :D

top one worked great for me on Ubuntu Server 11.04. thanks!

how do i update node.js?

i tried the first 2 methods and got the same error

src/unix/ev/ev.c: In function ‘ev_io_start’:
src/unix/ev/ev.c:2673: error: ‘EV_LIBUV_KQUEUE_HACK’ undeclared (first use in this function)
src/unix/ev/ev.c:2673: error: (Each undeclared identifier is reported only once
src/unix/ev/ev.c:2673: error: for each function it appears in.)
make[1]: *** [src/unix/ev/ev.o] Error 1
make[1]: Leaving directory /home/paul/node-latest-install/out/Release/deps/uv'
Waf: Leaving directory
/home/paul/node-latest-install/out'
Build failed: -> task failed (err #2):
{task: uv uv.h -> uv.a}
make: *** [install] Error 1

In https://gist.github.com/579814#file_only_git_all_the_way.sh, there is no need to git clone the npm repo, as it is now made available when you install node itself. So can remove line numbers 15-18.

Also, this is how the node installation ended for me:

shebang #!~/local/bin/node ~/local/lib/node_modules/npm/bin/npm-cli.js
fs.js:280
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory '~/local/lib/node_modules/npm/bin/npm-cli.js'
at Object.openSync (fs.js:280:18)
at Object.readFileSync (fs.js:155:15)
at shebang (/home/proto/repos/node/tools/installer.js:53:20)
at run (/home/proto/repos/node/tools/installer.js:77:10)
at /home/proto/repos/node/tools/installer.js:85:7
at ChildProcess.exithandler (child_process.js:533:7)
at ChildProcess.emit (events.js:90:17)
at maybeClose (child_process.js:615:16)
at Process.onexit (child_process.js:655:5)
make: *** [install] Error 1

Though everything seems to be working ("node -v", "npm -v" returns proper values, and "npm install -g coffee-script" works), not sure why the above error happened, and what the implications are. Jotting it down here since someone else too might face the issue.

Just a note, you can't use the ~ for the reference to home and currently npm doesn't work with 0.9.0-pre so the git method fails

Running Ubuntu 12.04, I kept running into this error when running make install

/home/tim/node-latest-install/out/Release/obj.target/v8_base/deps/v8/src/accessors.o ../deps/v8/src/accessors.cc
make[1]: g++: Command not found

My vm was brand spanking new, so I had to install this before make install would work

sudo apt-get install build-essential libssl-dev curl git-core

Just used the first one at Amazon EC2, awesome, thanks.

I don't know why installing npmjs didn't work using the first method but this is what I'm getting.
help would be appreciated.
npm ERR! Error: EACCES, unlink '/home/enduser/local/bin/npm'
npm ERR! { [Error: EACCES, unlink '/home/enduser/local/bin/npm'] errno: 3, code: 'EACCES', path: '/home/enduser/local/bin/npm' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.5.0-27-generic
npm ERR! command "/home/enduser/local/bin/node" "/tmp/npm.14923/package/cli.js" "rm" "npm" "-gf"
npm ERR! cwd /tmp/npm.14923/package
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR! path /home/enduser/local/bin/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/home/enduser/local/bin/npm'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /tmp/npm.14923/package/npm-debug.log
npm ERR! not ok code 0

npm@1.2.18 prepublish .
node bin/npm-cli.js prune ; rm -rf test///node_modules ; make -j4 doc

make: Nothing to be done for `doc'.
npm ERR! error rolling back Error: EACCES, unlink '/home/enduser/local/bin/npm'
npm ERR! error rolling back npm@1.2.18 { [Error: EACCES, unlink '/home/enduser/local/bin/npm'] errno: 3, code: 'EACCES', path: '/home/enduser/local/bin/npm' }
npm ERR! Error: EACCES, unlink '/home/enduser/local/bin/npm'
npm ERR! { [Error: EACCES, unlink '/home/enduser/local/bin/npm'] errno: 3, code: 'EACCES', path: '/home/enduser/local/bin/npm' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.5.0-27-generic
npm ERR! command "/home/enduser/local/bin/node" "/tmp/npm.14923/package/cli.js" "install" "-gf"
npm ERR! cwd /tmp/npm.14923/package
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR! path /home/enduser/local/bin/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/home/enduser/local/bin/npm'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /tmp/npm.14923/package/npm-debug.log
npm ERR! not ok code 0
It failed

apparently you still need admin rights to install npm. I just had the same issue, so I manually downloaded the install script and "sudoed" it:

cd ~
wget https://npmjs.org/install.sh
chmod +x install.sh
sudo ./install.sh

No error messages so apparently it worked :)

This helped me out... and in my case, (CentOS 6.3) EPEL repo has this jewel of a software, so it is a reliable package maintainer... This was really easy.

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager

I am getting this error in both method 1 and 2. Can someone please help?

root@web [/node]# ./configure --prefix=~/local
File "./configure", line 427
arm_float_abi = 'hard' if is_arm_hard_float_abi() else 'default'
^
SyntaxError: invalid syntax

I got an error at the same step as above except a different line:

bash-3.2$ ./configure --prefix=~/local
File "./configure", line 441
fpu = 'vfpv3' if armv7 else 'vfpv2'
^
SyntaxError: invalid syntax

Worked here. Ubuntu 13.04 64 bits. Thanks :)

First one is not working for me also. Someone pls help.

[root@sddev node-latest-install]# ./configure --prefix=~/local
File "./configure", line 441
fpu = 'vfpv3' if armv7 else 'vfpv2'
^
SyntaxError: invalid syntax

top worked beautifully! thanks man!

Step 9, method 1:

"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."

The configure script for only-git-all-the-way.sh is in python2 - this will cause parse errors if python3 is the default on your system. One solution is to add a symbolic link to python2 inside your ~/local/bin.

cd ~/local/bin
ln -s /usr/bin/python2 ./python

I thought "PROFESSIONALS" developed node.js?????

It is a garbage install process for the mac. The install directory is hidden/protected: /usr/local/bin...

WTF?

It is hard to have ANY confidence in developers that can NOT even get an installer right.

Can you imagine if surgeons and real professionals did their work so poorly? I am obviously very pissed that I just wasted two hours on what should be simple.

@itcastro maybe you should do something else if you failed to open http://nodejs.org/ and download installer in the first place.

./configure --prefix=~/local does not work on my system, it creates a directory called "~". The more defensive way is to do:

./configure --prefix=$HOME/local

I love this.....works like charm
keep up the good work

Thank you so much!

Thanks!!
Your awesome script node-and-npm-in-30-seconds.sh worked like a charm on my fedora 17.

No 30 seconds here....

Hi all - I'm pretty new to this but I read (and confirmed that it works for me) that using make -j (so with the -j flag) uses all processor cores and in my case (8 cores) makes it go A LOT faster.

On "take-ownership", the directory structure for the node dist is wrong.

curl http://nodejs.org/dist/node-v0.4.3.tar.gz | tar -xzf - -C node-install

should be

curl http://nodejs.org/dist/v0.10.20/node-v0.10.20.tar.gz | tar -xzf - -C node-install

node-and-npm-in-30-seconds.sh ftw \m/
worked flawlessly . Love it

thank you so much!

@leto, ./configure --prefix=$home/local fixed the issues I was having with #2. Thanks!

The first one doesn't work on OSX 10.9.
Getting
curl: (60) SSL certificate problem: Invalid certificate chain
on the last step.

Actually, the problems with #2 are fixed with ./configure --prefix=$HOME/local. The home variable is capitalized.

Thank you very much..I have installed node in ubuntu.
Just one suggestion, the latest version of node has included npm, so the last line of code can be removed...^_^

I'm also getting this with the 30 second method.

"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."

I'm pretty sure node installed although i do not seem to be able to run it. do i just delete /node-latest-install if i would want to try another method?

@johan010 npm comes packaged with nodejs now so you can ignore the part about installing npm

i used nvm which gives you the added bonus of easy node.js-version switching:

# see more about nvm: https://github.com/creationix/nvm
# added bonus: gives you the opportunity to switch node versions
 
# install nvm
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
 
# reload bash_profile
source ~/.bash_profile
 
# install a node.js version, edit the version you want to use
nvm install v0.10.22

Wow - wish i'd found this page like a year ago. :) stackoverflow answer is crap.

This is beautiful.

In addition to the first script, I run this on new systems for easy sudo'ing, when (rarely) needed:

#!/bin/bash
ln -s $HOME/local/bin/node /usr/bin/node
ln -s $HOME/local/lib/node /usr/lib/node
ln -s $HOME/local/bin/npm /usr/bin/npm
ln -s $HOME/local/bin/node-waf /usr/bin/node-waf

Just as a heads up, for the "node-and-npm-in-30-seconds.sh" gist I had to add www to the npmjs URL since it was returning HTML. Ex:

$ curl --proxy [proxy here] https://npmjs.org/install.sh install.sh
< html>Moved: < a href="https://www.npmjs.org/install.sh">https://www.npmjs.org/install.sh< /a>
< html>
...

Hi Isaac,

I have updated the 30 seconds install to the new npm url. Here is the link to the gist https://gist.github.com/aebm/9047011

Regards

Can someone explain what each step in "node-and-npm-in-30-seconds.sh" does? I'd like to know the reasons behind each line.

Hi Isaac

I am trying to use the npm install procedure "node-and-npm-in-30-seconds.sh" (actually part of a Dockerfile I am creating to install cartoDB).

The final output is this:

...
creating ./config.gypi
creating ./config.mk
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
03 0:00:03 --:--:-- 80
sh: 1: cannot open html: No such file
sh: 2: Syntax error: redirection unexpected

Do you have any idea what can cause this?

Hi Isaac

When I try the second script (again, inside Docker), it also fails with this message:

Cloning into 'npm'...
rm -rf \
.building_ronn \
html/doc \
html/api \
man
scripts/doc-build.sh doc/api/npm-test.md man/man3/npm-test.3
make[1]: Entering directory '/npm'
node cli.js install ronn --no-global
bash: node: command not found
make[1]: Leaving directory '/npm'
make[1]: *** [node_modules/.bin/ronn] Error 127
*** [man/man3/npm-test.3] Error 2

hi Isaac/guys couldn't execute the 30-secs-way without errors. Even I tried to fix it with no luck by playing around with most of the aforementioned variants. So just went to nodejs.org and click install. It downloads the latest node dist.

Then, I followed the readme instructions and got node installed (it seems that it comes with npm now)

My question is, am I missing something installing node+npm in this way?

Thanks,

Just a note, right now npmjs.org is throwing 301 redirects when you try and access without prefixing the www subdomain https://npmjs.org/install.sh

e.g.

curl -v https://npmjs.org/install.sh

The solution is to either manually change for the redirect

curl -v https://www.npmjs.org/install.sh

Or just use the -L option to tell curl to follow redirects

curl -Lv https://www.npmjs.org/install.sh

After making one of those changes, the gists should work.

Just updated the scripts to add the www to the urls. Sorry about that, folks.

For some reason after maybe a restart yo command not found and also the same for npm. This was bugging me as it was happening after time periods...thought it must be a restart...

and running . ~/.bashrc solved my issue ! So how do I persist this ? In this file I have

export PATH=$HOME/local/bin:$PATH
export PATH=$HOME/local/lib/:$PATH

I thought those 2 lines would export the lines in the main paths file ?

So I guess I might need these added to my main etc/paths file right (but why didnt the exports work???)

[paths file]
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/User/calvin/local/bin

can I add it like

~/local/lib
~/local/bin

??

ict4eo, I was getting the same error on my ubuntu system for the 2nd script and realized that it was compiling into the wrong directory (it actually made a directory named "~" in the current directory rather than using the home directory).

I changed:
./configure --prefix=~/local
by replacing the ~ with the full path to my home directory (e.g. '/home/username/local' where username is your username).

But I would grateful if someone could explain why the tilde did not work.

The homebrew install should be brew install node --without-npm or brew will install npm by default
I didn't read the whole comments so if this is a repeat, my apologise

@sungwon same thing here. running that second script threw me into a world of pain. took me 1 hour to figure out what the problem was.

First method worked, even thought it took a lot more than 30 seconds. Thanks.
Had to remove all the files and folder associated with the previous node install for it to work.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.