參考了很多 Mac Ruby 更新的文章,大部分的人還是傾向直接用 MacPorts 更新,趁著更新的同時也記錄一下更新的筆記

首先如果你的 Mac 還沒裝 MacPorts 先到官網下載 MacPorts-1.9.2.pkg
安裝完後進行更新

$sudo port -d selfupdate 
MacPorts command:
port -d selfupdate #=> 升級 macport
port install xxx  #=> 安裝 xxx 軟體
port upgrade outdated #=> 升級所有軟體
port installed   #=> 列出已經安裝軟體
port search xxx  #=> 列出與 xxx 條件相符的軟體

接下來,安裝 ruby1.9
(註. 一般來說用 MacPorts 安裝 ruby 要指定版本,如果你只下 “port install ruby” 指令,那安裝之後的版本是 1.8.7…)

$sudo port install ruby1.9 

安裝之後的 path /opt/local/bin

ruby1.9 有幾個檔案需要更動連結
=> erb1.9
=> gem1.9
=> irb1.9
=> rake1.9
=> rdoc1.9
=> ri1.9
=> ruby1.9
=> testrb1.9 

移除 1.8 path /usr/bin

$sudo rm /usr/bin/erb
$sudo rm /usr/bin/gem
$sudo rm /usr/bin/irb
$sudo rm /usr/bin/rake
$sudo rm /usr/bin/rdoc
$sudo rm /usr/bin/ri
$sudo rm /usr/bin/ruby
$sudo rm /usr/bin/testrb

將 link 更新為 1.9

$sudo ln -s /opt/local/bin/erb1.9 /usr/bin/erb
$sudo ln -s /opt/local/bin/gem1.9 /usr/bin/gem
$sudo ln -s /opt/local/bin/irb1.9 /usr/bin/irb
$sudo ln -s /opt/local/bin/rake1.9 /usr/bin/rake
$sudo ln -s /opt/local/bin/rdoc1.9 /usr/bin/rdoc
$sudo ln -s /opt/local/bin/ri1.9 /usr/bin/ri
$sudo ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
$sudo ln -s /opt/local/bin/testrb1.9 /usr/bin/testrb

下一步,如果你已經在舊版的 gem 裝很了很 library 請先備份清單

$sudo gem list

將顯示的清單貼到文字編輯器中就行了
在 gem1.9 重新安裝之前的清單即可
Rails 的部份也可用 gem1.9 重新安裝


$sudo gem1.9 rails 

原 Mac ruby1.8.7 路徑
ri -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ri
ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
rdoc -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rdoc
gem -> ../../System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem
irb -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/irb


# If you want to revert to default 1.8
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/erb /usr/bin/erb
ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/gem /usr/bin/gem
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/irb /usr/bin/irb
ln -s /usr/bin/rake.1.8 /usr/bin/rake
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/rdoc /usr/bin/rdoc
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ri /usr/bin/ri
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby
ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/testrb /usr/bin/testrb


Reference:

  1. http://blog.jeffean.net/2010/08/macport.html
  2. Ruby1.8.7 與 Mac OSX 的地雷
  3. Spree 0.10.2 discriminates Ruby10 :(
  4. Running a Ruby on Rails Application on OSX with Ruby1.9
  5. Install Ruby on Rails using MacPorts
  6. MultiRuby The MacPorts Way. Testing Your Rails Apps With Ruby1.9

 

同步更新於 Halo!

創作者介紹

Philippe's Expérience Note

philip 發表在 痞客邦 PIXNET 留言(0) 人氣()