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
curlもperlも入っているので一行でインストール。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に行き着きました。