Help us understand the problem. What is going on with this article?

anyenvで開発環境を整える

More than 5 years have passed since last update.

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

以上!

luckypool
へっぽこえんじーにゃ
https://github.com/luckypool
mixi
全ての人に心地よいつながりを
http://mixi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away