| ルビージェムズ | |
|---|---|
| 安定版リリース | 4.0.1 [ 1 ] / 2025年12月9日 (2025年12月9日) |
| リポジトリ | |
| 書かれた | ルビー |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | パッケージマネージャー |
| ライセンス | Rubyライセンス |
| Webサイト | ルビージェムズ |
| 宝石の合計数 | 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_nameという gem の場合、次の構造に従います。
宝石名/ ├── ビン/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── テスト/ │ └── test_gem_name.rb ├── README ├── レークファイル └── gem_name.gemspec
gemはアプリケーション内で独自のコードを実行するため、悪意のあるgemのインストールによって様々なセキュリティ問題が発生する可能性があります。悪意のあるgemの作成者は、ユーザーのシステムやサーバーに侵入する可能性があります。[ 8 ]
セキュリティ上の脅威に対抗するために、さまざまな方法が開発されてきました。