RoR是正在持續發展的framework,隨著新版作業系統,也更容易去安裝RoR的環境,在此簡述安裝可能碰到的問題,以及可採用的方式。
作業系統沒RoR套件的安裝
通常是先裝好了rubygems後,
然後執行
gem install rails
可裝上,之後都是透過 gem update 來更新新版本的rails及其他gems。
在Fedora 7之前,最多只有rubygems的rpm,所以RoR的安裝就只能以此方式進行。
有RoR套件的安裝
自Fedora 8之後,就也把RoR放在系統的套件中之前在Fedora安裝RoR,通常是以這樣的程序進行:
yum search rails
可查詢觀察到rails的套件名稱,並執行安裝指令
yum install rubygem-rails
即可同時將rubygems及RoR裝好。
更新rails的問題
gems上的更新機會,通常是比作業系統提供現成的rails更快,在Fedora 8環境下,印象中系統的rails套件好像沒有再更新,所以在裝了系統的rails的套件後,
就都用gem update的指令來更新,而系統再怎麼yum update也並不影響或蓋到從gem更新的rails。
Fedora9更新rails的問題
直接yum install rubygem-rails,即會安裝 rails 2.0.2版本,而在 gem update 的動作時,最近會更新到 rails 2.1.0的版本,在裝了最新版的rails 2.1.0後,執行時卻會因gem是舊版 0.9.4,而要更新gems版,當執行
gem update --system
之後,gem 為1.2.0版後,再
gem list
看反而之前裝的gems都沒了。
而最近的yum update來作更新的時候,反而出現了rubygem-rails的2.1.0的rpm更新,但gem卻沒有rpm的更新,所以用下述的方式來安裝RoR。
調整上述問題後的安裝過程
以Fedora9為例,由於我一向以作業系統的最小安裝為環境,碰到需要什麼套件才裝什麼,所以在過程中常會有尋找及安裝套件的動作:
安裝rubygems
yum install rubygems ruby-devel ruby-irb ruby-libs ruby-rdoc
將gem更新到最新
gem update --system
會將rubygems更新成1.2.0,然後再從 gem 來安裝新版的rails
gem install rails
原來rails中有附個ruby寫的web server,效能不是很好,所以可以裝mongrel
gem install mongrel
但後來又發展出效能更好些的web server,所以也裝上thin:
gem install thin
在安裝的過程中會發現未裝g++,
yum install gcc-c++
再gem install thin即可安裝完成。
能用就好
安裝好rails後,試試看建立一個Project:
rails test1
若能順利執行,就算安裝完成。
基本上,在初次接觸rails時,
以什麼方式安裝,不是最重要的,
只要能快快進入可以使用的環境,
即使是舊版或不是最新版,
都還是可去感受RoR的好處。
最近 fedora 的 rpm 已有 gem 的 1.2.0 了,
所以若要最單純的環境的話,就先把所有的 gem 先移掉,
然後再把 rpm 之中有 ruby 字樣的都先移掉,
然後重裝就是一個完整的 rails 環境了。
<pre class="c" name="code">
# 先看 gems 中有哪些
gem list
# 除了 source 之外都可先移掉
gem uninstall xxx xxx xxx
# 先找出目前系統上有裝跟 ruby 的 rpm
rpm -qa | grep ruby
# 移掉這些rpm,但有 -devel 的可不用移
yum remove xxx xxx xxx
# 重裝 rails
yum install rubygem-rails rubygem-mongrel
然後再繼續裝 rpm 沒提供的 gems。
gem update 可以將 rails 更新到 2.2.2
但要執行 rails 時,會要求 gem 的版本是 1.3 以上;
而 fedora 的 gem 目前仍是 1.2,即使用 gem update --system 也沒作用;
但執行以下指令就可把 rubygems 更新到 1.3.1
<pre class="c" name="code">
gem install rubygems-update
update_rubygems
#此時 rubygems 就是 1.3.1 了
gem list
#會發現以前裝的 gem 都沒有了
gem install rails mongrel thin
#再用手動安裝所需要的 gem
就可以順利執行 rails 2.2.2 了!