anyenvで開発環境を整える

  • 625
    いいね
  • 4
    コメント
この記事は最終更新日から1年以上が経過しています。

87063.png

私の場合、開発環境では複数の言語のコードを書いたり実行したりします。
例えば perl, ruby, nodejs, python など。
これらを利用するために、plenv, rbenv, nodebrew, pyenv などを利用していました。

しかし、遅ればせながら anyenv というものがあると聞いたので、こっちに乗り換えました。

**envを2つ以上使ってる人はこれ使うのが良いと思います。おすすめ。

インストールは簡単

README.md のとおりにやればOK

$ git clone https://github.com/riywo/anyenv ~/.anyenv

PATHの設定

zshrc がシンプルになりました!

 # ------------------------------------------------------------------------
-# plenv
+# anyenv
 # ------------------------------------------------------------------------
-if [ -d ${HOME}/.plenv  ] ; then
-    export PATH=${HOME}/.plenv/bin:${HOME}/.plenv/shims:${PATH}
-    eval "$(plenv init -)"
-fi
-
-# ------------------------------------------------------------------------
-# rbenv
-# ------------------------------------------------------------------------
-if [ -d ${HOME}/.rbenv  ] ; then
-    export PATH=$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH
-    #export PATH="$HOME/.rbenv/bin:$PATH"
-    eval "$(rbenv init -)"
-fi
-
-# ------------------------------------------------------------------------
-# nodebrew
-# ------------------------------------------------------------------------
-if [ -d ${HOME}/.nodebrew  ] ; then
-    export PATH=${HOME}/.nodebrew/current/bin:${PATH}
-fi
-
-# ------------------------------------------------------------------------
-# pyenv
-# ------------------------------------------------------------------------
-# git://github.com/yyuu/pyenv.git
-if [ -d ${HOME}/.pyenv ] ; then
-    export PATH="$HOME/.pyenv/bin:$PATH"
-    eval "$(pyenv init -)"
+if [ -d $HOME/.anyenv ] ; then
+    export PATH="$HOME/.anyenv/bin:$PATH"
+    eval "$(anyenv init -)"
 fi

もっと早く知っていればよかった・・・。

tmux を使っている場合(追記)

 if [ -d ${HOME}/.anyenv ] ; then
     export PATH="$HOME/.anyenv/bin:$PATH"
     eval "$(anyenv init -)"
+    for D in `ls $HOME/.anyenv/envs`
+    do
+        export PATH="$HOME/.anyenv/envs/$D/shims:$PATH"
+    done
+
 fi

参考

anyenv install

以下はインストールした時のメモです。

ruby, perl, python, node.js に相応する **env をインストールします。

$ anyenv install rbenv
$ anyenv install plenv
$ anyenv install pyenv
$ anyenv install ndenv

初期状態は下記のようにsystemのものを指していると思います。

$ anyenv versions
ndenv:
* system (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
* system (set by /Users/luckypool/.anyenv/envs/plenv/version)
pyenv:
* system (set by /Users/luckypool/.anyenv/envs/pyenv/version)
rbenv:
* system (set by /Users/luckypool/.anyenv/envs/rbenv/version)

ということで、おなじみ **env からインストールします。

$ rbenv install 2.1.0
$ plenv install 5.16.3
$ ndenv install v0.10.25
$ pyenv install 2.7.6
$ pyenv install 3.3.3

それぞれ時間かかかりますが、ちゃんとインストールされると下記のようになります。

$ anyenv versions                                                                                     
ndenv:
  system
* v0.10.25 (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
* system (set by /Users/luckypool/.anyenv/envs/plenv/version)
  5.16.3
pyenv:
* system (set by /Users/luckypool/.anyenv/envs/pyenv/version)
  2.7.6
  3.3.3
rbenv:
* system (set by /Users/luckypool/.anyenv/envs/rbenv/version)
  2.1.0

ということで、インストールしたversionを指すようにglobalを設定します。

rbenv global 2.1.0
plenv global 5.16.3
ndenv global v0.10.25
pyenv global 3.3.3

変更されましたね!

$ anyenv versions                                                                                     
ndenv:
  system
* v0.10.25 (set by /Users/luckypool/.anyenv/envs/ndenv/version)
plenv:
  system
* 5.16.3 (set by /Users/luckypool/.anyenv/envs/plenv/version)
pyenv:
  system
  2.7.6
* 3.3.3 (set by /Users/luckypool/.anyenv/envs/pyenv/version)
rbenv:
  system
* 2.1.0 (set by /Users/luckypool/.anyenv/envs/rbenv/version)

転ばぬ先の杖

必要に応じて確認すればいいですが、忘れがちなので、下記の確認もしておきます。

rubyのコードのためにbundlerをいれときます。

$ which gem
/Users/luckypool/.anyenv/envs/rbenv/shims/gem
$ gem install bundler
$ which bundle
/Users/luckypool/.anyenv/envs/rbenv/shims/bundle

perlのコードのためにcpanmとcartonをいれときます。

$ plenv install-cpanm
$ cpanm Carton
$ which carton
$ /Users/luckypool/.anyenv/envs/plenv/shims/carton

一応 pip と npm もPATHが通っているか確認します。

$ which pip
/Users/luckypool/.anyenv/envs/pyenv/shims/pip
$ which npm
/Users/luckypool/.anyenv/envs/ndenv/shims/npm

以上!