Piston

by winson, 3 months ago.

在Rails底下使用外掛是很方便沒錯,問題是這些第三方的外掛常常在更新。我們當然可以很簡單地使用以下指令安裝外掛:
cd /myrails
plugin install http://some_where_to_my_favorite_plugin
這種直接安裝外掛的問題在於第三方的外掛更新時,我們並不知道。 或者也可以用以下指令安裝外掛:
plugin install -x http://some_where_to_my_favorite_plugin
這種安裝外掛的方式,是將外掛以svn co的方式安裝,每次我們svn ci更新遠端程式碼時,系統就會先去問第三方外掛的svn看看有沒有更新,有更新會先更新外掛之後,才把修改過的程式以及更新的外掛送到遠端的svn repository。

但這又有一個麻煩,他會自動去更新我並沒有要更新的外掛。例如,如果我把Rails整個lock在plugin裡頭,只想在這個版本底下的Rails開發時,這一更新整個就毀了。好吧,你可以說需要自動更新的才用plugin install -x,不要自動更新的就用plugin install。

那如果未來我要更新Rails版本的話,怎辦?整個砍掉重裝嗎?

Piston的出現正好可以解決這個問題,他可以讓你想更新便更新,不更新就不更新,隨心所欲而不踰矩。

請按照以下指令安裝Piston:
sudo gem install piston
要是你已經用plugin install -x安裝了一堆外掛,那很簡單,直接轉換成piston即可,如下:
cd /myrails/vender/plugins
piston convert
為什麼要轉換?因為Piston必須要知道外掛的原始svn repository才能更新。如果你是用plugin install安裝的話,很抱歉,請砍掉後用piston安裝:
cd /myrails/vender/plugins
rm -r my_plugin_1
rm -r my_plugin_2
用Piston安裝外掛相當簡單,如下:
piston import http://some_where_to_my_favorite_plugin
將整個外掛系統透過Piston轉換或安裝完畢之後,好戲上場,平常不更新外掛時,不用去理會他,一但你想要更新外掛版本時,只要輸入以下指令即可:
cd /myrails/vender/plugins
piston up my_plugin_need_to_be_updated
或者你也可以鎖住外掛,以避免不小心更新了:
piston lock vendor/rails
這樣一來,無論你怎麼piston up都不會動到這個被鎖住的外掛,解鎖方式如下:
piston unlock vendor/rails

Piston顧名思義是引擎中的活塞,除了增加引擎動力之外,也是很好的中間協調模組,這讓我們可以很方便地處理外掛版本更新。


  • Posted in Deployment, Gems, on Saturday, March 22, 2008, at 08:52 PM.