ルビージェムズ

ルビージェムズ
安定版リリース
4.0.1 [ 1 ] / 2025年12月9日 (2025年12月9日
リポジトリ
書かれたルビー
オペレーティング·システムクロスプラットフォーム
タイプパッケージマネージャー
ライセンスRubyライセンス
Webサイトルビージェムズ.org
宝石の合計数175,000以上
合計ダウンロード数2020億以上

RubyGemsは、 Rubyプログラミング言語パッケージマネージャであり、Rubyプログラムとライブラリ(「gem」と呼ばれる自己完結型フォーマット)を配布するための標準フォーマット、gemのインストールを容易に管理するためのツール、そしてそれらを配布するためのサーバーを提供します。 2004年にChad FowlerJim WeirichDavid Alan BlackPaul BrannanRichard 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 FowlerJim WeirichDavid Alan BlackPaul BrannanRichard 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 は次のものから構成されます:

  1. コード
  2. ドキュメント
  3. 宝石仕様(Gemspec)

コードの構成は、 gem_nameという gem の場合、次の構造に従います。

宝石名/ ├── ビン/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── テスト/ │ └── test_gem_name.rb ├── README ├── レークファイル └── gem_name.gemspec 
  • lib ディレクトリには gem のコードが含まれています。
  • テスト (または spec) ディレクトリはテストに使用されます。
  • Rakefile は、 Rakeによってテストを自動化し、コードを生成するために使用されます。
  • README には、ほとんどの gem のドキュメント(RDOC ) が含まれています。
  • Gem 仕様 (gemspec) には、Gem の作成者、作成時刻、Gem の目的に関する情報が含まれています。

セキュリティ上の懸念

gemはアプリケーション内で独自のコードを実行するため、悪意のあるgemのインストールによって様々なセキュリティ問題が発生する可能性があります。悪意のあるgemの作成者は、ユーザーのシステムやサーバーに侵入する可能性があります。[ 8 ]

セキュリティ上の脅威に対抗するために、さまざまな方法が開発されてきました。

参照

参考文献

  1. ^ 「リリース 4.0.1」 2025年12月9日. 2025年12月10日閲覧
  2. ^ a b “174 Rubygems with Eric Hodel” . 2021年7月31日時点のオリジナルよりアーカイブ2018年5月9日閲覧。
  3. ^ 「RubyGemsコマンドリファレンス」 . guides.rubygems.org . 2016年9月18日閲覧
  4. ^ “Ruby 1.9.1 changelog” . 2022年1月17日時点のオリジナルよりアーカイブ
  5. ^ a b c d「RubyGemsのバージョン履歴」。GitHub 2016年9月18日閲覧
  6. ^ 「Ruby 1.9.1 リリース」 . www.ruby-lang.org . 2016年9月18日閲覧。
  7. ^ 「gemとは何か? - RubyGems.org」 . guides.rubygems.org . 2016年9月18日閲覧
  8. ^ 「セキュリティ - RubyGemsガイド」 . guides.rubygems.org . 2016年9月23日閲覧