Wakotech Blog

ポエム

node.jsをインストールし直す際に苦戦した結果nodebrewを使いました

はるか昔にMac OS Xインストーラから直接インストールしていたNode.js。
バージョン管理が面倒だったり、npmをどうインストールしたかも覚えてないせいでsudoが必要だったり、一部パッケージがうまく動いてくれなかったり、問題ばかり発生していたのでnodeごとインストールし直したのでメモしておきます。
結論からいうとbrewでインストールするのが大変だったのと、バージョン管理出来た方が後々楽そうなのでnodebrewをインストールしました。

まずnodeをアンインストールします。
こちらのStack Overflowを参考にコマンドで削除します。

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
  sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
     /usr/local/lib/node_modules \
     /var/db/receipts/org.nodejs.*

これでnodeが消えました。
次に、nodebrewを導入します。nodebrewについては公式のgithubの通りに。
hokaccha/nodebrew · GitHub

curlperlも入っているので一行でインストール。PATHも追記しておきましょう。

curl -L git.io/nodebrew | perl - setup
export PATH=$HOME/.nodebrew/current/bin:$PATH

nodeをインストールします。バージョン指定以外にもstableで安定版、latestで最新版を指定できます。今回は安定版(v0.10.33)にしました。
$ nodebrew use (バージョン) で使用バージョンを指定できますが、エイリアスを設定できるので、安定版であるv0.10.33に対してstableとつけておきます。

nodebrew install stable
nodebrew alias stable v0.10.33
nodebrew use stable

パッケージ管理を行うnpmも入っているかと思います。
ためしにいくつかパッケージを入れてみると、パッケージの方にも上記のpathで通っているかと思います。
npmについてはここでは説明しませんが、$ npm install -g (パッケージ名) でインストールすることができます。-gはglobalで、有効にしているnode全体で使えるようになります。-gを指定しないと、現在のディレクトリ以下にインストールされます。
(ここで勘違いをして詰まっていたのですが、expressのインストールはexpress-generator、coffeeのインストールはcoffee-scriptなんですね。ここが原因でpathが通っていないと勘違いしていました……。)

とりあえずyeomanでangularのひな形を作って動かしてみます。

npm install -g yo grunt-cli bower generator-angular
yo angular
grunt server

以前のnpmでうまく動かなかった部分が動きました!というわけで勘違いさえしなければnodebrewですぐ環境が整いました。



……ついでにbrewでインストールしようとした際に失敗したことも書いておきます。
$ brew install node を叩くとビルドで失敗しました。ビルド中にnodeコマンドでcli.jsを実行しているようなのですが、nodeがないので実行できず、エラー……と。
nodeがないと言われても今から入れるんだから当たり前でしょと思い、それ以上の原因も調べてもあまりでてこず(npm導入にnodeのpathが貼られてない問題ばかり)、nodebrewに行き着きました。