下書きのままのこってる記事あるんだけど
サーバーにnodejsをインストールしよう!
実はこの鯖、ずっとnodeを入れようとして入れずに放置してきてた。もちろんrpmリポジトリから入れておくべきなのかもしれないがやはりバージョン管理ツール使ったほうが便利な気がするのでnodebrewで入れたい。
そんで色々探してみたけど何故かそれっぽいシステムワイドで本番環境に導入するなんて記事が見つからない。ndenvやnvmならいっぱいでてくるのに…
とりあえずまずは手元の実験環境でやってみる。
今回のメインはこのメモ(予定)
環境と予定
- CentOS 6.5/7.0 (本番/実験) 本来なら合わせるべきなんだろうけどまあ変わらないはず…
- nodebrewの仕様的に環境はそこまで書かなくてもいいよね?
-
PATHの設定はもちろん一か所の記述で。
- npmモジュールとかのインストール先っていっしょになるよね?
/opt/nodebrew
にインストール- インストールは基本root作業(めんどいから)
インストール先を環境変数で指定できる!
幸いにもnodebrewにはインストール先をNODEBREW_ROOT
の値で変更できる機能が用意されている。
よって、それを設定してからsetupを打ってやれば任意の場所にはいるお!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# wget git.io/nodebrew ... # export NODEBREW_ROOT=/opt/nodebrew # chmod +x nodebrew # ./nodebrew setup fetching nodebrew... install nodebrew in /opt/nodebrew ======================================== Add path: export PATH=/opt/nodebrew/current/bin:$PATH ======================================== |
無事/opt/nodebrew
にインストールされたら指示に従って…とは少し違うけど/etc/profile.d/nodebrew.sh
に次の(ってか画面で指示されるやつと上に書いた)2行を書き込む。
1 2 3 4 |
export PATH=/opt/nodebrew/current/bin:$PATH export NODEBREW_ROOT=/opt/nodebrew |
ついでにbash(zsh)-completionも入れておく。(事前にbash-completionが有効化されていること)
1 2 |
# cp /opt/nodebrew/completions/bash/nodebrew-completion /etc/bash_completion.d/ |
profileを一回読み直すため念の為ログアウト/ログインしなおす。
で、ちなみにこの時点でsudo nodebrewしたらそんなコマンドないぜって返される。secure_pathで定義されてないPATHだからね。(もし使えるようにするならvisudoでsecure_pathに書き足すのが早そう
)
sudo -i nodebrew
なら大丈夫。
nodejsのStableをインストールする
とりあえずバージョン一覧を見てみよう。
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 |
# nodebrew ls-remote v0.5.8 v0.5.9 v0.5.10 v0.6.0 v0.6.1 v0.6.2 v0.6.3 v0.6.4 v0.6.5 v0.6.6 v0.6.7 v0.6.8 v0.6.9 v0.6.10 v0.6.11 v0.6.12 v0.6.13 v0.6.14 v0.6.15 v0.6.16 v0.6.17 v0.6.18 v0.6.19 v0.6.20 v0.6.21 v0.7.0 v0.7.1 v0.7.2 v0.7.3 v0.7.4 v0.7.5 v0.7.6 v0.7.7 v0.7.8 v0.7.9 v0.7.10 v0.7.11 v0.7.12 v0.8.0 v0.8.1 v0.8.2 v0.8.3 v0.8.4 v0.8.5 v0.8.6 v0.8.7 v0.8.8 v0.8.9 v0.8.10 v0.8.11 v0.8.12 v0.8.13 v0.8.14 v0.8.15 v0.8.16 v0.8.17 v0.8.18 v0.8.19 v0.8.20 v0.8.21 v0.8.22 v0.8.23 v0.8.24 v0.8.25 v0.8.26 v0.8.27 v0.8.28 v0.9.0 v0.9.1 v0.9.2 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9 v0.9.10 v0.9.11 v0.9.12 v0.10.0 v0.10.1 v0.10.2 v0.10.3 v0.10.4 v0.10.5 v0.10.6 v0.10.7 v0.10.8 v0.10.9 v0.10.10 v0.10.11 v0.10.12 v0.10.13 v0.10.14 v0.10.15 v0.10.16 v0.10.17 v0.10.18 v0.10.19 v0.10.20 v0.10.21 v0.10.22 v0.10.23 v0.10.24 v0.10.25 v0.10.26 v0.10.27 v0.10.28 v0.10.29 v0.10.30 v0.10.31 v0.10.32 v0.11.0 v0.11.1 v0.11.2 v0.11.3 v0.11.4 v0.11.5 v0.11.6 v0.11.7 v0.11.8 v0.11.9 v0.11.10 v0.11.11 v0.11.12 v0.11.13 |
とりあえず現時点での最新安定板は0.10.32らしい。
nodebrew install
を使えばソースコードからmakeするけどそれは時間かかるし、バイナリで取ってこればよさそう。
1 2 3 4 5 |
# nodebrew install-binary stable fetch: http://nodejs.org/dist/v0.10.32/node-v0.10.32-linux-x64.tar.gz ######################################################################## 100.0% Install successful |
ものの一瞬でインストールされる。すげぇ()
もちろんこのままnodeってうっても使えるわけないよ?useでセットしてやらんと…
1 2 3 4 |
# nodebrew use v0.10.32 # node -v v0.10.32 |
お疲れ様でした。無事node先生がインストールされました。
npmも試す
ex1:npm install -g
グローバルモジュールはroot権以下のディレクトリに書き込むためroot権限がもちろん必須。groupつかってもいいのかもしれないけどややこしくなる原因なので今回は無し。
rootで作業するなら問題はない。sudoを使う場合は前述の通り-i
オプションを使う。
1 2 |
sudo -i npm install -g bower grunt-cli gulp |
ちなみにnpmやbower,grunt,gulp,いずれもcompletionを有効化しておくと捗る。
ex2:npm install
依存パッケージのインストール。アプリのw権があるユーザーなら普通通りインストール出来る。
1 2 |
$ npm install grunt grunt-contrib-less --save-dev |
まとめ
とりあえずこんな感じでnodebrewでnodeがインスコできたんで色々捗りそうです()
ついでに本番環境へのインストールも無事同様の手順で成功しました。