2010-11-05 25 views
0

我有一堆紅寶石腳本文件夾被添加到$PATH,我認爲其中一些可能會對其他人有用。所以我想分發它們和我知道的唯一'好'方法是rubygems(gem僅包含二進制文件),它具有版本控制的非常有用的優點,但也是初始化時間的缺點(有時在腳本啓動之前需要幾秒鐘跑)。有替代品嗎?簡單的方法來分發紅寶石腳本

+1

你是什麼意思的「初始化時間」? – Jeremy 2010-11-05 18:59:50

+0

@Jeremy:運行'cat $(其中rake)' - 在執行腳本之前,rubygems被初始化並找到包含二進制文件的gem。 – tig 2010-11-05 19:03:23

回答

2

寶石已經足夠了。我使用gem來達到這個目的,因爲安裝和更新非常方便。

1

寶石是爲此而建造的。我不確定你認爲gem是什麼,但RubyGems是一個類似於PEAR for PHP,aptitude for ubuntu或CPAN for perl的存儲庫,除了它們包含ruby庫之外。

沒有額外的開銷或「初始化時間」通過使寶石庫添加到您的紅寶石庫。 RubyGems只是簡單地安裝你的庫 - 它什麼都不做。

+1

有開銷 - 需要rubygems並搜索包含腳本的寶石 – tig 2010-11-05 19:05:32

+0

@tig你有沒有基準測試以確定它是否是一個實際問題?時間幾乎可以忽略不計。如果它真的是,你可以簡單地跳過rubygems並手動要求文件。通過這種方式,您可以輕鬆地使用RG進行分發,但是您沒有路徑搜索的開銷。 – ryeguy 2010-11-05 19:11:07

+0

我沒有對它進行基準測試,但注意到它的存在(這就是爲什麼我知道rubygems bin的工作原理:),開銷不是時間常數,首次運行很慢,進一步運行速度很快)。跳過rubygems意味着什麼?我想分發像'rake'或'rails'這樣的可執行腳本。 – tig 2010-11-05 19:23:09

0

寶石很適合這種Ruby腳本。

要快速生成新寶石,請嘗試bundle gem

要在不使用rubygems.org的情況下快速分發寶石,並且可以用於私人部署,請查看microgems的想法。

如果你仍然認爲你不需要用寶石包裝這些,你可以簡單地將可執行位添加到你的腳本中,爲ruby添加shebang行,並刪除.rb擴展名。然後與任何想要他們的人分享您的腳本文件。