fasionchan

读万卷书,行万里路,品万味肴,撸万行码。

Mac下Ruby安装小结

| Comments

最近,重新拿起博客,发现已有一年多没有动过的Octopress跑不起来了,囧。并不意外,每次Mac一升级,总有一些东西会挂掉,久而久之习惯了。

如何让Octopress重新跑起来呢?重新看安装文档,大头只是安装一个ruby而已。但是,由于对ruby并不熟悉,中间还是踩了个大坑。因此,有必要记一下,免得以后再犯。

安装rbenv

rbenv是什么鬼?

我们知道,系统本来已经有一个ruby了,不信命令行运行which ruby看看。这个是系统自带的,一般版本都是极其老的。然而,我们在用一些软件环境时,却是需要某个特定版本ruby的。这时,你可以选择重新编译一个,然后进行安装。问题是,安装到系统这个动作太暴力了,影响范围略大,可能会搞挂其他东西。如果可以安装多个版本的ruby,与系统独立,按需使用,那敢情好。rbenv就是这样的工具~

好吧,那么要怎么安装呢?Mac下,一般用brew安装软件,rbenv也不例外:

1
2
3
brew update
brew install rbenv
brew install ruby-build

安装ruby

rbenv完成安装后,ruby的安装就没有任何难度了:

1
2
3
rbenv install 1.9.3-p0
rbenv local 1.9.3-p0
rbenv rehash

好吧,这么说来,写这篇文章有什么意义呢?别急,下面不是还有一节嘛~

上面的安装步骤正确操作完,我发现ruby缺不是用rbenv local选定的版本!我运行which ruby看到还是用系统的,什么鬼!

确定rbenv没生效,但暂时不知道为什么。我猜rbenv应该是通过PATH环境变量生效的,但是看了一下并没有什么变化。rbenv help也看不到任何关于生效的内容,无奈只能Google了。

F*ck!确实需要做点什么才能生效,rbenv init就是需要做的内容,但是rbenv help一个字也没提?

1
2
3
4
5
$ rbenv init
# Load rbenv automatically by appending
# the following to ~/.bashrc:

eval "$(rbenv init -)"

shell下运行eval "$(rbenv init -)"后,再运行which ruby就看到确实生效了!这个操作最好根据指引放到.bashrc里,这样就不要要每次都要运行一遍。

Comments