node.jsを入れてる際にエラーが出てハマった

node.jsをnvmや実際にパッケージを落としてきてmakeすると以下のようなエラーが出た

Build failed:  -> task failed (err #1): 
	{task: cxx_link node_main_5.o,node_5.o,node_buffer_5.o,node_javascript_5.o,node_extensions_5.o,node_http_parser_5.o,node_constants_5.o,node_file_5.o,node_script_5.o,node_os_5.o,node_dtrace_5.o,node_string_5.o,node_zlib_5.o,timer_wrap_5.o,handle_wrap_5.o,stream_wrap_5.o,tcp_wrap_5.o,udp_wrap_5.o,pipe_wrap_5.o,cares_wrap_5.o,tty_wrap_5.o,fs_event_wrap_5.o,process_wrap_5.o,v8_typed_array_5.o,node_signal_watcher_5.o,node_stat_watcher_5.o,node_io_watcher_5.o,platform_darwin_5.o,node_crypto_5.o,http_parser_3.o -> node}

で、最初の方に以下のようなメッセージが出てきてたので、何かしらライブラリが足りないのかな、
と思っていた

Checking for program g++ or c++          : /Developer/usr/bin/g++ 
Checking for program cpp                 : /Developer/usr/bin/cpp 
Checking for program ar                  : /Developer/usr/bin/ar 
Checking for program ranlib              : /Developer/usr/bin/ranlib 
Checking for g++                         : ok  
Checking for program gcc or cc           : /Developer/usr/bin/gcc 
Checking for gcc                         : ok  
Checking for library dl                  : yes 
Checking for openssl                     : yes 
Checking for library util                : yes 
Checking for library rt                  : not found    <-
Checking for fdatasync(2) with c++       : no      <-

結論から言うと、

これらのライブラリは自分の場合には関係がなく、opensslのversionの問題だった

自分の場合で解決したのは

1)Macportsのversionを上げる
2)Macportsでインストールしたものを全てアンインストール
3)brewでopensslで入れる

※恐らくだけど、node.jsをビルドする時に使ったopensslのバージョンがMacportsで入れた古いものと結びついてしまっていたようである

http://dolias.jugem.jp/?eid=581

こういった事例があるので、opensslが原因になる場合があるようだった。
自分の場合はMacportsで入れたopensslのバージョンが古いものだったらしい

自分のマシンはOSがLeopardの時に買ったもので、SnowLeopardに上げたときに
portコマンドが変なエラーを吐いていて、かつhomebrewが流行ってたっぽいし、インストールも簡単だったので、放置してしまっていた。

具体的な手順としては、

1)Macportsの新しいバージョンのインストール

http://distfiles.macports.org/MacPorts/

ここにGUIでも入るのがあるからこれの方が楽だと思う

2)Macportsで入れたパッケージを全てアンインストール

$sudo port -f uninstall installed

3)brewで新しくopensslを入れなおす

$ brew install openssl

その後

$nvm install v0.6.0

とかやれば入ると思う。

自分のようにLeopardからSnowLeopardにアップグレードしてなんにもしてない人はこういう場合で解決するかもしれない。