| RubyGems | |
|---|---|
| 安定版リリース | 4.0.1 [1]
/ 2025年12月9日 (9 December 2025) |
| リポジトリ |
|
| 言語 | Ruby |
| オペレーティングシステム | クロスプラットフォーム |
| タイプ | パッケージマネージャー |
| ライセンス | Rubyライセンス |
| ウェブサイト | rubygems.org |
| 合計ジェム数 | 175,000以上 |
|---|---|
| 総ダウンロード数 | 2020億以上 |
RubyGemsは、 Rubyプログラミング言語のパッケージマネージャーです。Rubyプログラムとライブラリ(「gem」と呼ばれる自己完結型形式)を配布するための標準形式、gemのインストールを容易に管理できるように設計されたツール、そしてそれらを配布するためのサーバーを提供します。 2004年にChad Fowler、 Jim Weirich、David Alan Black、Paul Brannan、Richard Kilmerによって作成されました。[2]
RubyGemsのインターフェースは、ライブラリ(gem)をインストールおよび管理できるgemと呼ばれるコマンドラインツールです。 [3] RubyGemsはRubyランタイムローダーと統合されており、標準化されたライブラリフォルダからインストール済みのgemを検索してロードするのに役立ちます。プライベートなRubyGemsリポジトリを使用することもできますが、gemの管理にはパブリックリポジトリが最も一般的に使用されています。
公開リポジトリは、ユーザーがgemを見つけ、依存関係を解決し、インストールするのに役立ちます。RubyGemsは、Ruby 1.9以降、標準Rubyパッケージにバンドルされています。[4]
歴史
RubyGemsの開発は2003年11月に開始され、2004年3月14日、つまり2004年の円周率の日(パイ・デー)に一般公開されました。[5]
これは、Chad Fowler、Jim Weirich、David Alan Black、Paul Brannan、Richard KilmerによってRubyConf 2004で作成されました。[2]
2010年、gemのデフォルトの公開リポジトリはgems.rubyforge.orgからrubygems.orgに移行し、現在も使用されています。また、RubyGemsの開発も2010年にGitHubに移行しました。RubyGemsはRuby 1.8から存在していましたが、Ruby 1.9までは標準のRubyディストリビューションには含まれていませんでした。[要出典]
2004年から2010年にかけて38回のリリースがありました。[5]
以前は、 RubyGemsとRubyの互換性は様々でした。RubyGemsの多くのバージョンは、Rubyの多くのバージョンとほぼ完全に互換性がなく、一部のバージョンでは重要な機能が使用できませんでした。例えば、Ruby 1.9には標準配布版としてRubyGems 1.3.7が付属していましたが、RubyGems 1.4.xはRuby 1.9と互換性がありませんでした。そのため、Ruby 1.9の最初の安定版リリースから2年後の2011年にRubyGems 1.5.0がリリースされるまで、Ruby 1.9上でRubyGemsを更新することができませんでした。[6]これらの互換性の問題により、RubyGemsは急速に開発が進められ、4~6週間ごとのリリーススケジュールに変更され、より多くのバージョンがリリースされました。[5]
2011年から2016年までに117回のリリースがありました。2013年には45バージョンがリリースされ、これはRubyGemsの年間リリース数としては最多です。[5]
宝石の構造
すべてのGemには、名前、バージョン、プラットフォームが含まれています。Gemは、CPUアーキテクチャとオペレーティングシステムの種類とバージョンに基づいて特定のプラットフォーム向けに設計されたRubyでのみ動作します。[7]
各 gem は次のものから構成されます:
- コード
- ドキュメント
- Gem仕様(Gemspec)
gem_nameというGemのコード構成は以下の構造に従います
gem_name/ ├── bin/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── test/ │ └── test_gem_name.rb ├── README ├── Rakefile └── gem_name.gemspec
- libディレクトリにはgemのコードが含まれています。
- test(またはspec)ディレクトリはテストに使用されます
- Rakefile は、 Rakeによってテストを自動化し、コードを生成するために使用されます。
- README には、ほとんどの gem のドキュメント(RDOC ) が含まれています。
- Gem 仕様 (gemspec) には、Gem の作成者、作成時刻、および Gem の目的に関する情報が含まれています。
セキュリティ上の懸念
gemはアプリケーション内で独自のコードを実行するため、悪意のあるgemのインストールによってさまざまなセキュリティ問題が発生する可能性があります。悪意のあるgemの作成者は、ユーザーのシステムやサーバーを侵害する可能性があります。[8]
セキュリティ上の脅威に対抗するために、さまざまな方法が開発されてきました。
- RubyGemsバージョン0.8.11以降、gemの暗号署名が可能になりました。この目的には、gem certコマンドとgem installコマンドが使用されます。
- X509やOpenPGPなどの新しい署名モデルが提案されており、Ruby の専門家の間で活発に議論されています。
参照
参考文献
- ^ 「リリース4.0.1」。2025年12月9日。2025年12月10日閲覧
- ^ ab “174 Rubygems with Eric Hodel”. 2021年7月31日時点のオリジナルよりアーカイブ。2018年5月9日閲覧。
- ^ 「RubyGemsコマンドリファレンス」. guides.rubygems.org . 2016年9月18日閲覧。
- ^ “Ruby 1.9.1 changelog”. 2022年1月17日時点のオリジナルよりアーカイブ。
- ^ abcd 「RubyGemsのバージョン履歴」。GitHub 。 2016年9月18日閲覧。
- ^ 「Ruby 1.9.1 リリース」www.ruby-lang.org . 2016年9月18日閲覧。
- ^ 「gemとは何か? - RubyGems.org」。guides.rubygems.org 。 2016年9月18日閲覧。
- ^ 「セキュリティ - RubyGemsガイド」. guides.rubygems.org . 2016年9月23日閲覧。
外部リンク
- 公式サイト
- Linux Journalの記事