InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

RubyGemsのまとめ: RubyGems 1.2のリリース、JRuby、より高速なGemリリース機能

作者 Werner Schuster , 翻訳者 近藤 修平 - (株)永和システムマネジメント 投稿日 2008年7月14日

セクション
デベロップメント
トピック
ランタイム ,
Ruby
タグ
RubyGems ,
Releases ,
Ruby1.9 ,
JRuby
Eirc Hodel氏(Eric氏のインタビュー記事(参考記事・英語)を見て欲しい)は、RubyGemsの1.2をリリースした(リンク)。リリースノートを見るとわかるが、新しい機能は多くない。
  • RubyGemsは大量の無駄なアップデートは実行せず、必要とするgemspecファイルだけを取得するようになりました。メタデータを利用した新しい更新機能を利用するためにはgemの提供側がRubyGems 1.2 へアップグレードする必要があります。ソースリストの中のリモートソースが、1.2より古いバージョンの場合、RubyGemsは互換性の為に、以前のやり方で更新を行います。
  • RubyGemsの依存gemライブラリの種類を実行時依存と開発時依存とに区別できるようになりました。これを実現するには、#add_development_dependency#add_runtime_dependency を利用します。依存ライブライリの種類を指定しない場合は、すべて実行時依存のライブラリと見なされます。
  • RubyGemsはrubygems/defaults/operating_system.rb and rubygems/defaults/#{RBX_ENGINE}.rb がある場合、requireするようになりました。パッケージやrubyの処理系を実装をする人は、これらのファイル使ってRubyGemsの挙動をカスタマイズすることができるようになります。(もし、RubyGemsのAPIが不十分な場合は、メーリングリストで改善案を提案してください。) 
  • /etc/gemrc (とWindowsで同等のもの) を使ってグローバルな設定ができます。
  • setup.rb はパッケージを作る人のために --vendorと--destdir を指定できるようにしました。
  • 最終アクセス日時の順でgemのリストを表示するgem stale コマンドを追加しました。
リリースノートによると、RubyGemsを現在のバージョン(少なくとも0.8.5)からアップデートするには以下のコマンドを使う。
$ gem update --system   (おそらく管理者権限で実行する必要がある) 
GitHubのブログにあるように、RubyGems 1.2では、簡単にGitHubからGemsをインストールできるようになっている(リンク)
あなたの為を思って教えますが、Rubyistなら以下のコマンドを実行してみた方がよいでしょう。
$ sudo gem update --system 
$ gem sources -a http://gems.github.com
RubyForgeからgemをインストールしていたのと同様に、直接ソースを指定することなくGitHubからもgemをインストールすることができるようになります。

今のところ、JRubyのユーザは、RubyGems1.2を使い始めるには少し準備しておく必要がある。Vladimir Sizikov氏は、現在のJRuby 1.1.xリリースでRubyGems1.2が動かせるように回避策を提供している(リンク)
jruby -S gem update --system
通常なら問題ないこのrubygemsのアップグレードコマンドはJRuby 1.1.2ではうまくいきません。これはrubygems 1.1.1のバグに起因するものですが、幸運なことに回避策はあります。
jruby -S gem install rubygems-update -v 1.1.1
一度このアップデートがインストールされてしまえば、上にある本当のアップデートコマンドが実行できるようになります。
実は、これは単なる最初の一歩にしか過ぎず、Vladimir氏のメールの続きには、RubyGems 1.2を動作させるためにはどういう手順で行えばよいか、どのファイルをダウンロードするべきか、という話の詳細が述べられている(リンク)
注意: この手の作業をするのを避けたい場合は、とりあえずRubyGems1.2と一緒にリリースされる予定のJRuby 1.1.3を待つのがよいだろう。Ruby1.9のChangelog(リンク)の概略を見ると、1.9.xのtrunkバージョンも、RubyGems 1.2が動くようにアップグレードしているのがわかる。

最後になるが、Tom Copeland氏はRubyForgeのGemインフラの改良点を発表している(リンク)

この案は、新しいgemのファイル名は記録しておき、RubyForgeはリクエストをミラーサイトへリダイレクトするのではなく、自前でこれらのgemを提供するようにするというものでした。.. 全てのミラーサイトが更新されるのを待つことなく、gemが提供されることになります。今ちょうど、24時間ぐらい経過したらリストからファイル名を取り除くという短いコードを、書こうとしているところです。それぐらい経過していれば、gemの同期は完了していることでしょう。
つまり、まとめると、リリースされたすぐ後にgemは利用可能になります。

原文はこちらです:http://www.infoq.com/news/2008/06/rubygems-12-faster-gems

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。