仕事上、メインの API サーバは Ruby on Rails、Lambda やマイクロサービス的な小さいサーバは Node.js、一部 DevOps 関連のスクリプトを Python で書いてたりする。
各種プログラミング言語を使うときは言語自体のバージョン管理が必要となるが、-env
系のバージョン管理ツールで統一するとコマンドがいっしょなので便利。
そして Mac でも Linux でも使える(これ超大事)。
Mac へのインストール方法
$ brew install nodenv
$ brew install rbenv
$ brew install pyenv
基本的なコマンド
インストール可能なバージョン一覧
$ rbenv install -l
インストール
$ rbenv install 2.5.1
インストール済のバージョン一覧
$ rbenv versions
アンインストール
$ rbenv uninstall 3.6.5
インストールしたバージョンをシステム上でグローバルに利用する
$ rbenv global 3.6.5
インストールしたバージョンを現在のディレクトリだけで利用する
$ rbenv local 3.6.5
カレントディレクトリに .ruby-version
ファイルが生成されるので rbenv
はこれを参照して指定のバージョンを利用する仕組み。
fish shell によるパス設定
bash を使ってる場合 ~/.bash_profile
を編集する『パスを通す設定』が煩わしい。でも fish shell ならプラグインをインストールするだけ。
$ fisher install rbenv
$ fisher install pyenv
$ fisher install oh-my-fish/plugin-nodenv
自分で設定ファイルを vi
とかで修正する必要がない。
Node.js のバージョン管理ツールいろいろ
余談。nodenv
の存在に気づくまでは nodebrew を使っていた。
だいたい同じだけど、カレントディレクトリだけ特定のバージョンを利用する機能はない。
(あと nodebrew は指定バージョンのインストールで v10.11.0
みたいに v
を付けるが、nodenv 系は付けない点に注意。)
$ nodebrew ls-remote
$ nodebrew install-binary v10
$ nodebrew ls
$ nodebrew use v10
$ nodebrew uninstall v10
$ nodebrew selfupdate
nodenv
と同じ env 系のバージョン管理ツールとして ndenv というものもあるが、こっちはもうメンテナンスされてないので使わない。
nodeenv という一文字違いの紛らわしいものもあるが、まったくの別系統のようだ。ちなみに Node.js を最初に使い始めた 5 年くらい前は nvm を使っていた気がする。