LoginSignup
656

More than 5 years have passed since last update.

anyenvで開発環境を整える

Last updated at Posted at 2014-02-04

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

以上!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
656