QA@IT

RubyGems.orgと、GitHubのgemsの使い分けは?

3442 PV

Rubyでgemを管理、インストールするのにふつうにrubygems (Railsではbundlerも) を使っているのですが、gemパッケージのリポジトリとして、GitHubをどう扱えばいいのか、イマイチ理解していません。

GitHubで公開されているgemのリスト
http://gems.github.com/list.html

にあるように、

 $ gem sources -a http://gems.github.com

とするか、~/.gemrc に、

:sources:
- http://gems.rubyforge.org
- http://gems.github.com

と書くらしいというのは、何となく知ってるのですが、GitHubなしで困っていませんでした。ただ、GitHub上にしかないgemもあるし、やっぱりレポジトリソースとしてGitHubを追加しておくのが普通なのかな? と思ったりしています。

そうするとレポジトリとして利用する優先順位が変わるのでしょうか? あと、フォークされたgemがある場合はどうなるのでしょうか?

回答

現在、新しくRubyとRubyGemsをインストールすると、sourcesはrubygems.orgだけになると思います。
なので、これが「普通」だと思って良いんじゃないでしょうか。

:sources: 
- http://rubygems.org

個人的には、githubにしかないgemというのはもう使っていないので、これで特に困っていません。
GitHub上でのgem生成機能は数年前に停止されているので、rubygems.orgからインストールできないgemを使う機会は年々減っていくと思われます。

  • フォークされたgemはどうなるのか
    • gems.github.comのgemは「ユーザ名-プロジェクト名.gem」という名前になるので、どのフォークのgemをインストールするのかユーザが明示的に指定する形になります。
  • 優先順位
    • よく知りませんが、sourcesに書いてある順に探すんじゃないかなぁ。
    • ただ、githubの方はユーザ名がprefixに付くので、rubygems.orgとgem名が被ることは滅多にないと思います。
編集 履歴 (0)
  • よく分かりました、ありがとうございます! -
  • ソースは失念しましたが、:sources に設定する値は rubygems.org のみにした方が早いというのを見ました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。