Leopard系统已经集成安装了ruby 1.8.6和rails 1.2.3,但是没有安装oniguruma,oniguruma已经作为ruby的正则表达式库添加在ruby 1.9中。在ruby 1.8.6下使用oniguruma需要编译安装,Leopard无法通过gem来安装。下面介绍一下安装的方法:
onigurma和ruby的安装
安装需求
- Mac OSX 10.5 Leopard
- Xcode 3.0或更新
配置系统路径
编辑~/.bash_login,添加如下一行在末尾,确认配置生效。
export PATH="/usr/local/bin:/usr/local/sbin::$PATH"
安装
curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
tar xzvf readline-5.2.tar.gz
cd readline-5.2
curl -O http://ftp.gnu.org/gnu/readline/readline-5.2-patches/readline52-012
patch -p0 < readline52-012
./configure --prefix=/usr/local
make
sudo make install
cd ..
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p114.tar.gz
tar xzvf ruby-1.8.6-p114.tar.gz
cd ruby-1.8.6-p114
curl http://chopine.be/lrz/ruby-osx-patches/dot-darwin.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/etc-irbrc.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/ignore-gsetcontext.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/md5_sha1_commoncrypto.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/use-dyld.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/use-setreugid.diff | patch -p0
curl http://chopine.be/lrz/ruby-osx-patches/words-bigendian-from-arch.diff | patch -p0
cd ..
curl -O http://www.geocities.jp/kosako3/oniguruma/archive/onigd2_5_9.tar.gz
tar xzvf onigd2_5_9.tar.gz
cd oniguruma
./configure --with-rubydir=../ruby-1.8.6-p114
make 186
cd ../ruby-1.8.6-p114
./configure --prefix=/usr/local --enable-pthread --with-readline-dir=/usr/local --enable-shared
make
sudo make install
sudo make install-doc
cd ..
执行完毕即将ruby和oniguruma安装完毕,可以执行 which ruby查看ruby是否安装正确。安装过程中只需注意打上补丁,否则编译出错。
gem的安装
curl -O http://files.rubyforge.mmmultiworks.com/rubygems/rubygems-0.9.2.tgz
tar xzvf rubygems-0.9.2.tgz
cd rubygems-0.9.2
sudo /usr/local/bin/ruby setup.rb
cd ..
总结
由于一些bug导致GNU的readline安装需要补丁才可以安装,安装ruby也是需要补丁,否则在Leopard编译出错。希望此文能够对在leopard编译安装ruby的朋友有些帮助,少走弯路。