rvmからrbenvに乗り換える on Mac
試してから時間が経ってるので、正直言って自信はありませんが・・・。(単なる下書き消化のためなのは内緒なんだぜ)
以前の記事でhyperneetprogrammer.hatenablog.com
Ubuntuでrbenvに乗り換えたので、Macの方でもやってみようと。
brew update済みで
rvmの切腹
$ rvm seppuku
その後.bashrc
や.bash_profile
、.zshrc
などのrvm関連の設定を削除。
なんか「.rvm削除できませんでしたああああ」な感じのメッセージもでたので、手動で削除(.rvmrc
も。メッセージにはもう一つでたけど、それは見当たらず。名前を失念した)
rbenv,ruby-buildのインストール
$ brew install rbenv ruby-build $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # or ~/.zshrc
Rubyのインストール
rbenv install -l
でインストールできるバージョンを確認。その後
$ brew install readline openssl $ brew link readline $ brew link openssl $ CONFIGURE_OPTS="--with-readline-dir=/usr/local --with-openssl-dir=/usr/local" rbenv install 2.1.5
既にHomebrewでreadline
,openssl
をインストール済みだったので、それらをリンクさせてみる(実はよくわかってない)。
でも前回のように途中でコケることなく、無事インストール。ちなみにこのリンクを毎回やるのかなあ?
ここをそのまま参考にしたので・・・。
Happy Elements Labs: モテカワるびいすとのための rbenv 入門
Gistも用意してくださってます。ありがたい。
その後のglobal
やlocal
を用いたバージョン指定は説明不要かなと。
rbenv rehash
rbenv global x.x.x
で設定したあと$ sudo gem install bundle
でbundle
入れます。
- Before
ls ~/.rbenv/versions/2.1.4/bin/
erb gem irb rake rdoc ri ruby testrb
- After
$ ls ~/.rbenv/versions/2.1.4/bin/
bundle erb irb rdoc ruby
bundler gem rake ri testrb
ふむ。しかし
$ ls ~/.rbenv/shims
erb gem irb rake rdoc ri ruby testrb
こちらにはコピーされていないと(厳密にはコピーではないらしいけど)。
$ rbenv rehash
$ ls ~/.rbenv/shims
bundle erb irb rdoc ruby
bundler gem rake ri testrb
なんか「rehashしたよ!」的なメッセージがでないんですね・・・。
rbenv rehashを自動でやるためのgemコマンドのラッパーをつくる
gemのインストール/アンインストール時に毎回rbenv rehash
をやるのもダルいので
rbenv で gem を使った時に rbenv rehash しなくて良くする - sorry, uninuplemented:
この記事で紹介されている
方法2: zshの関数でgemコマンドのラッパーをつくる
をやってみます。bash
だけど。
rehashでなくてhash -r
元記事ではrbenv rehash
のあとにrehash
をしていましたが(.zshrcへの設定なので?)
bashだとhash -r
のようなので
hash再構築は rehash じゃなくて hash -r - 今日もスミマセン。
function gem(){ $HOME/.rbenv/shims/gem $* if [ "$1" = "install" ] || [ "$1" = "i" ] || [ "$1" = "uninstall" ] || [ "$1" = "uni" ] then rbenv rehash hash -r fi }
メッセージも欲しいので
function gem(){ $HOME/.rbenv/shims/gem $* if [ "$1" = "install" ] || [ "$1" = "i" ] || [ "$1" = "uninstall" ] || [ "$1" = "uni" ] then echo Run rbenv rehash... rbenv rehash echo Done. echo Run hash -r... hash -r echo Done. fi }
こいつをそのまま.bash_profile
に打ち込みます。そしてsource .bash_profile
して・・・
Rubyのバージョン変更し、再度トライ。しかしこれではsudo
つけてgemをインストールした場合にメッセージでないな。
$ sudo gem install bundle
- Before
$ ls ~/.rbenv/versions/2.1.2/bin/
erb gem irb rake rdoc ri ruby testrb
- After
$ ls ~/.rbenv/versions/2.1.2/bin/
bundle bundler erb gem irb rake rdoc ri ruby testrb
- ~/.rbenv/shims
$ ls ~/.rbenv/shims
bundle bundler erb gem irb rake rdoc ri ruby testrb
ん? でも2.1.4の時と同じことしたから違いがわからんw
rbenv-gem-rehash
rehashがやっぱりメンドイので、rbenv-gem-rehash
を導入しますか・・・。
が、これは要らん子になったともあります。
This plugin was merged into rbenv
ふーむ。rbenv
へ組み込まれたのかな? でもその後ちょっと問題はあるみたいだしなあ。
そうこうしているうちに必要なバージョンのRuby入れ終えたので、やってみるか。
rbenv-gem-rehashを入れてみる
$ brew install rbenv-gem-rehash
Railsインストール
rails
入っとらんよといわれるので。システムにインストール。
$ sudo gem install rails -v 4.2.0
とりあえず今必要な4.2.0
を。
インストール後、確認
$ ls ~/.rbenv/shims
bundle gem rails ruby tilt
bundler irb rake sprockets
erb nokogiri rdoc testrb
erubis rackup ri thor
ふむ。rehash
されているようです。
(これは今回やらず)rbenv-rehash
もう一つ、(紛らわしいですが)rbenv-rehash
があります。
前回は(よくわからず)gem install rbenv-rehash
してましたが
ryansouza/rbenv-rehash · GitHub
各バーションのRubyにて用意しなければいけないみたいなのでそれもメンドイ。
参考箇所:
ryansouza/rbenv-rehash · GitHub
Install with gem install rbenv-rehash on each installed ruby version for optimal results
「on each installed ruby version」が気になるところ(自分の英語力では自信ないw)
rbenv で gem を使った時に rbenv rehash しなくて良くする - sorry, uninuplemented:
方法1: rbenv-rehash という gem を入れる
% gem install rbenv-rehash
とするとインストールできます. しかし,複数のRubyを管理している場合,各バージョンのRubyのgemにインストールしておかなければいけません. また,シェルのビルトインコマンドのほうのrehashのほうは行なってくれないため,そっちは結局手動で更新する必要があります.
その他
プロンプトにRubyのバージョンを表示したい - ザリガニが見ていた...。
ここを参考に現在のRubyのバージョンがプロンプトに表示されるようにした。