iT邦幫忙

DAY 2
10

Rails 的簡單任務系列 第 2

[RoR] Rails 環境建置及更新問題

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的好處。


上一篇
[RoR]為何Linux -> Perl -> Ruby on Rails?
下一篇
[RoR] 簡單完成 CRUD 的動作
系列文
Rails 的簡單任務33
0
逮丸逮丸
iT邦大師 1 級 ‧ 2008-09-30 14:49:11

最近 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。

0
逮丸逮丸
iT邦大師 1 級 ‧ 2008-11-27 13:55:54

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 了!

0
gric
iT邦高手 1 級 ‧ 2009-03-13 14:39:46

謝謝分享咯!

我要留言

立即登入留言