rbenv から anyenv に乗り換えました

yak shaving (ここは読まなくていい)

最近数学ガールを読んでいまして、複素数平面とかのplotをrubyでできないかと
探していたら nyaplot というのが使えそうでした。
動作環境は IRuby notebook
IRuby notebook は Anaconda の利用が推奨されています。
pythonに関しては、たまに使うぐらいだったので、homebrew でinstallしていたのですが
そのまま、Anaconda のインストーラーを使うと homebrew 環境が壊れるとかなので
pyenv で Anaconda を入れるという方法で行こうと思ったのですが、
env系2つ以上入れるなら anyenv がいいよということなので
今回試してみることにしました。
 
この yak shaving 感ハンパないですね。
 
こういうのは Docker 使いこなすといちいちローカル環境整備しなくても良いのだろうなという気はしますが、node や go 環境も一旦 anyenv に乗せてローカルも綺麗にしておきたいという思いもあったので、環境整備することにしました。

Installation

Uninstall rbenv and python

~/.rbenv は .anyenv 以下に持っていっても動きそうな気がしますが、とりあえず消して再インストールすることにします。

$ brew uninstall rbenv ruby-build rbenv-default-gems
# .rbenv/default-gems の移行をするので、必要に応じてbackupしておいてください
$ rm -rf ~/.rbenv

$ brew uninstall python3
# python2はovencvの依存関係があったため ignore-dependencies を指定
$ brew uninstall --ignore-dependencies python

Install anyenv, rbenv and pyenv

$ git clone https://github.com/riywo/anyenv ~/.anyenv
$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.your_profile
$ exec $SHELL -l

$ anyenv install rbenv
$ anyenv install pyenv

Intall anyenv-update

homebrew 時代は ruby-build を利用してupdateしていましたが、anyenv では、 znz/anyenv-update で一括updateができるようです。

$ mkdir -p $(anyenv root)/plugins
$ git clone https://github.com/znz/anyenv-update.git $(anyenv root)/plugins/anyenv-update
$ anyenv update

Install rbenv-default-gems

rbenv-default-gems が便利 - rochefort’s blog
毎回installするgemを自動で入れてくれる便利な奴です。
rbenv/rbenv-default-gems: Automatically install gems every time you install a new version of Ruby
homebrew で入れていましたが、以下のようにすれば anyenv でも利用できます。

$ git clone https://github.com/rbenv/rbenv-default-gems.git $(rbenv root)/plugins/rbenv-default-gems

# 最初にバックアップしておいた、default-gems を rbenv root に配置
# mv .rbenv/default-gems $(rbenv root)

Install ruby, putyhon, annaconda

$ rbenv install 2.4.1
$ rbenv global 2.4.1

$ pyenv install 2.7.13
$ pyenv install anaconda3-4.4.0
$ pyenv global anaconda3-4.4.0

余談ですが、openssl, readline は RUBY_CONFIGURE_OPTS で指定しなくても hombrew のものが使われるんですね。

$ rbenv install 2.4.1
ruby-build: use openssl from homebrew
ruby-build: use readline from homebrew

余談

いつも思うのですが処理系をinstallするとCPU上がりまくりで、Macがあっちっちになるのなんとかならんのでしょうか? nodebrewのbinary installみたいなことができると嬉しいんだけどな。

See Also