[分享] 為什麼 Debian 跟 Ubuntu 上面沒有 ruby-gems?

常言道:『飲水思源』,在 Open Source 的世界裡,我們常常需要別人的幫助,但是在您有所心得的時候請記得分享給大家,『幫助人是快樂的喔』。歡迎您在使用 debian 的過程中的任何心得分享給大家。

[分享] 為什麼 Debian 跟 Ubuntu 上面沒有 ruby-gems?

文章giive » 週五 11月 17, 2006 9:00 am

出自我的Blog

Ruby Gems 是一個相當重要的 Ruby 套件管理系統,有太多 Ruby and Rails 的 Plugin 在 Gems 上面可以方便的下載。但是,FreeBSD ,MAC OS X,Gentoo 都可以直接用預設的套件系統安裝 gems ,卻只有標榜安裝快速方便的 Debian 跟 Ubuntu 沒有提供 APT 安裝。這到底是為什麼呢?

我看了一些討論串,這裡網頁解釋了許多 Debian 上面為何不加入 Ruby Gems 的原因。
代碼: 選擇全部
    * Rubygems packages are not compatible with the FHS. Rubygems follows the “one directory per package and version” rule.
    * It is not possible to do “normal” (FHS-compatible) installations of rubygems, and some ruby software developers have started to distribute their software as gems only.
    * Rubygems is source-intrusive. The require instruction is replaced by a require_gem instruction to allow for versioned dependencies. Debian and most other systems think that dealing with versioned dependencies outside of the source is a better idea.
    * There are currently no plans to improve RubyGems to ease the work of Debian and RPM packagers.

當然啦,每個套件系統都有自己的 concern,不過我不太能接受這個理由,難道 Ruby Gems 必須為了特定系統開發一個新的方式嗎?

到底是系統應該配合開發者的習性,還是開發者得自己去適應系統的規則?

但是看到這個網頁,我覺得這個講的比較實在點
代碼: 選擇全部
    Pure ruby gems are converted fine. However, ones including C extensions are not.

大意是如果這個 GEMS 是純 Ruby 當然歡迎,但是有些 Ruby Gems 是有 C extenstions 的(一些 Ruby Lib 像是 ruby-mysql ),那就很容易出現安裝錯誤,所以相當不建議使用 Ruby Gems 摟。 為此,Debian-Ruby 的 Daigo Moriwaki 也寫了自動轉換 GEM 成為 DEB 的程式,希望能方便大家打包 Ruby Gems 的 DEB Package。但是話說回來, Ruby Gems 那麼多,你怎麼可能全部包成 DEB ?Ruby GEMS上有些東西有安全性顧慮時,要緊急下載 patch ,這時通常官方會建議使用 Gem 去更新,難道 DEB 也可以立刻做到即時更新?還是要使用者自己苦哈哈下載 source 自己裝?

到底是系統應該配合開發者的習性,還是開發者得自己去適應系統的規則?

如果答案是後者的話,Ruby GEMS 要怎麼做到跨平台?所以 Daigo Moriwaki 也深知這個道理,也提供了 Unofficial 的 deb source XD
代碼: 選擇全部
    deb http://www.sgtpepper.net/hyspro/deb unstable/
    deb-src http://www.sgtpepper.net/hyspro/deb unstable/

Update 完 DEB index 之後,apt-get install rubygems 即可。
giive
可愛的小學生
可愛的小學生
 
文章: 54
註冊時間: 週一 3月 07, 2005 5:09 pm

回到 share

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客