序章


RubyGemsは、Rubyアプリケーションパッケージの作成から配布までのライフサイクルを管理するツールです。 Rubyベースのアプリケーションを使用したことがある場合は、RubyGemsを使用して依存関係、ライブラリ、またはフレームワークを管理したことがある可能性があります(例: Ruby-on-Rails)。

このDigitalOceanの記事では、最も基本的な機能からより高度な機能まで、RubyGemsのすべての重要な部分を学びます。 長期的にRubyを使用(または使用)することを計画している場合、このツールを習得すると、作業の効率が大幅に向上します。

用語集


1. パッケージマネージャーとRubyGems


1. What Is A Package Manager?
2. Application Packages
3. What Is RubyGems?
4. What Is A Gem?

2. RubyGemsGemパッケージ形式


1. Gem Information And Format
2. The `*.gemspec` File

3. RubyGems入門


1. Installing Ruby And RubyGems
2. Usage

4. Gemsを操作するための主なRubyGem操作


1. Finding Installed And Available Gems
2. Searching RubyGems.org For Gems
3. Installing New Gems
4. Finding Outdated Gems
5. Updating Gems
6. Removing / Deleting Gems
7. Reading The Gem Documentation

パッケージマネージャーとRubyGems


パッケージマネージャーとは何ですか?


コンピューターに関しては、ほとんどすべてが異なるプログラム間の接続とコレクションで構成されています。 マシンを起動すると、大量のコードが実行され、他のコードが読み込まれます。 ピラミッドが構築され、最終的なプラットフォームが形成され、必要な高レベルのアプリケーションを実行できるようになります(例: ルビー!)。

上記のアプリケーション実行ライフサイクルの基本的な描写からわかるように、プログラムに関しては、すべてが他の人に依存しています。 そして、このサイクルは開発段階で始まります。

プログラムが依存するライブラリのダウンロードとインストールの手順を容易にするために、特に最近では、パッケージマネージャーと呼ばれるツールのセットが頻繁に使用されています。 これらのツールを使用すると、開発者としてプログラムに必要な他のすべてのライブラリを簡単に検索、インストール、追跡できます。

これらのツールを介して配布されるアプリケーションパッケージは、通常、プログラムとメタデータを含む単純なアーカイブです。 さまざまなプログラミング言語の依存関係を管理するためにさまざまなパッケージマネージャーが存在し、それぞれがパッケージに異なる名前を付けています。

アプリケーションパッケージ


簡単に言えば、アプリケーションパッケージには、他の人が使用する、コンパイル済みですぐに使用できるソフトウェアまたはライブラリが含まれています。 彼らはパッケージに関する情報を提供するために追加のファイルを提供することができます(そして通常はそうします)、そして重要性にもかかわらず、まともな使用マニュアルが付いている場合があります。 パッケージマネージャーがパッケージをインストールすると、これらの要素はすべて、設定されている環境内でアクセスできるようになります(例: RVMジェムセット)。

RubyGemsとは何ですか?


Rubyの場合、デフォルトのパッケージマネージャーはRubyGemsと呼ばれます。 このプログラムは、バージョン1.9以降、デフォルトのRubyインタープリターとともに配布されており、Rubyアプリケーションのダウンロードからパッケージ化、配布、そしてもちろん、関連するバイナリーやライブラリーまで、さまざまなことに役立ちます。 RubyGemsは非常に豊富で、おそらく存在する中で最も成熟したパッケージ管理アプリケーションの1つです。 これは、Gemsと呼ばれるアプリケーションコレクション(パッケージ)を処理するための標準形式とともに、開発者に標準構造を提供します。

宝石とは何ですか?


Gem は、先ほど説明した一般的な説明と構造が非常に似ているアプリケーションパッケージです。 これは、コード、ライブラリ、依存関係のリスト、およびいくつかの追加のメタデータのコレクションであり、RubyGemsツールで配布されるパッケージを定義します。

プログラムの操作を開始する最も簡単な方法は、Rubyベース(またはRuby関連)のアプリケーションを開発するときにこれらのバンドルを使用することです。 このチュートリアルでは、RubyGemsを使用してGemベースのパッケージを操作および処理する方法を学習します。

RubyGemsGemパッケージ形式


宝石の情報と形式


前述したように、Gemはさまざまなコンポーネントのセットを含むパッケージです。 各Gemには、それが構築されたプラットフォームのバージョンと基本的な定義があります。

Gemディレクトリには次のものを含めることができます。

  • アプリケーションコード;

  • テスト;

  • 依存関係の説明。

  • バイナリ;

  • 関連ドキュメント;

  • パッケージに関する情報(例: gemspec)。

そして、それらは次のような基本構造を持っています:

/[package_name]               # 1
        |__ /bin              # 2
        |__ /lib              # 3
        |__ /test             # 4
        |__ README            # 5
        |__ Rakefile          # 6
        |__ [name].gemspec    # 7
  1. [package_name]:
    Gemパッケージのメインルートディレクトリ。

  2. / bin:
    パッケージに実行可能バイナリがある場合の場所。

  3. / lib:
    メインのRubyアプリケーションコードを含むディレクトリ(inc。 モジュール)。

  4. / test:
    テストファイルの場所。

  5. Rakefile:
    Rake-ビルドにRakeを使用するライブラリのファイル。

  6. [packagename] .gemspec:
    * .gemspecファイルには、メインディレクトリの名前があり、すべてのパッケージメタデータが含まれています。 名前、バージョン、ディレクトリなど。

gemspecファイル


配布または共有される他のアプリケーションコレクションとほぼ同じように、Gemsには、パッケージを説明するファイルも付属しています。このファイルには、非常に役立つ追加情報も含まれている傾向があります。

これらのgemspecファイルには、パッケージバージョン、メンテナ名、プラットフォームなどの特定の必要なデータが含まれており、キー、連絡先情報、追加の説明などのオプションの属性が含まれている可能性があります。

gemspec ファイルは、次の例のようになります。

Gem::Specification.new do |s|
  s.name        = 'myapp'
  s.version     = '1.5.7'
  s.licenses    = ['Apache']
  s.summary     = "My application package"
  s.description = "Optional, longer description."
  s.authors     = ["Maintaner Name"]
  s.files       = ["path/to/files", "additional/files", ..]
end

RubyGems入門


RubyとRubyGemsのインストール


Ruby、つまりRubyGemsをインストールしていない場合は、以下の2つのリンクのいずれかをたどって、選択したプラットフォームにインストールできます。

使用法


RubyGemsの操作はとても簡単です。 Rubyをインストールしたら、アプリケーションをPATHにセットアップする必要があります。ターミナルエミュレーター内でgemと入力すると、ツールの使用を開始できます(例: OS X用ターミナル、Windows用パテなど)。

gemを実行して、いくつかの使用方法と例を確認してください。

gem

# RubyGems is a sophisticated package manager for Ruby.  This is a
# basic help message containing pointers to more information.

# Usage:
#     gem -h/--help
#     gem -v/--version
#     gem command [arguments...] [options...]

ご覧のとおり、gemの操作は、引数とオプションを使用してコマンドをチェーンすることで構成されます。例:

gem help commands

# GEM commands are:

# build             Build a gem from a gemspec
# cert              Manage RubyGems certificates and signing settings
# check             Check a gem repository for added or missing files
# ..

ヒント: rubyやrakeなどのコマンドを実行すると、オペレーティングシステムはディレクトリのリストを検索して、その名前の実行可能ファイルを見つけます。 このディレクトリのリストは、PATHと呼ばれる環境変数にあり、リスト内の各ディレクトリはコロンで区切られています。

/ usr / local / bin:/ usr / bin:/ bin

PATH内のディレクトリは左から右に検索されるため、リストの最初にあるディレクトリ内の一致する実行可能ファイルが、最後にある別のディレクトリよりも優先されます。 この例では、最初に/ usr / local / binディレクトリーが検索され、次に/ local / bin、次に/binが検索されます。

Rubyをインストールすると、rubyインタープリターとRubyGemsのgemの両方がPATHに追加されます。

Gemsを操作するための主なRubyGem操作


新しいプログラミング言語を学び始めるということは、RubyGemsforRubyなどの基本的で一般的な関連ツールの操作方法を学ぶことも意味します。 物事を過度に複雑にすることなく、このパッケージ管理ツールを使い始めるときに知っておく必要のある基本的な操作を見てみましょう。

通常、パッケージマネージャーでの主な操作は次のように考えることができます。

  • システムに何がインストールされているかを調べます。

  • 新しいパッケージの検索と発見。

  • 更新が必要なパッケージを見つける。

  • 新しいものをインストールします。

  • 古いものを更新します。

  • パッケージの削除(または削除)。

  • 不要になったものをクリーンアップします。

  • ドキュメントをチェックしてください。

RubyGemsでこれらの操作を実行する方法を見てみましょう。

インストールされ利用可能な宝石の検索


現在インストールされているすべてのgemを見つけることは、それらの名前のlistを取得することと考えることができます。

したがって、listコマンドがこの操作に必要なものであることを忘れないでください。

次のコマンドを実行して、インストールされているgemのリストとそのバージョンを取得します。

gem list

# ** LOCAL GEMS ***

# actionmailer (4.0.2)
# actionpack (4.0.2)
# activesupport (4.0.2)
# bundler (1.5.3, 1.5.2)
# capistrano (3.1.0)
# coffee-rails (4.0.1)
# coffee-script (2.2.0)
# coffee-script-source (1.7.0, 1.6.3)
# execjs (2.0.2)
# i18n (0.6.9)
# ..

RubyGems.orgで宝石を検索


宝石の名前がすでにわかっている場合は、searchコマンドを使用して宝石を探すことができます。

その見返りとして、宝石とそのバージョンのリストが再び表示されます。

次のコマンドを実行して、名前でgemを検索します。

# Usage: gem search [name]
# Example:
gem search rails

# *** REMOTE GEMS ***

# rails (4.0.2)
# rails-3-settings (0.1.1)
# rails-action-args (0.1.1)
# rails-admin (0.0.0)
# .. 

注:クエリされたgem名で正規表現を使用できます。 -dフラグを渡して、次のような追加情報を取得することもできます。

gem search rails_utils -d

# *** REMOTE GEMS ***

# rails_utils (2.1.4)
#     Author: Winston Teo
#     Homepage: https://github.com/winston/rails_utils
# 
#     Rails helpers based on opinionated project practices.

新しい宝石のインストール


インストールしたいgemが見つかったら、installコマンドを使用するだけです。

次のコマンドを実行して、新しいgemをインストールします。

# Usage: [sudo] gem install [name]
# Example:
gem install rails_utils

# Fetching: rails_utils-2.1.4.gem (100%)
# Successfully installed rails_utils-2.1.4
# Parsing documentation for rails_utils-2.1.4
# Installing ri documentation for rails_utils-2.1.4
# Done installing documentation for rails_utils after 0 seconds
# 1 gem installed

注:新しいgemをインストールすると、gemが実際に機能できるように、gem内で指定されたすべての依存関係もインストールされます。

gemの特定のバージョンをダウンロードするには、以下を使用します。

# Usage: [sudo] gem install [name] -v [version]
# Example:
gem install rails -v 4.0

古い宝石を見つける


どの宝石が古くなっているかを知るために(すなわち 新しいバージョンが存在します)、outdatedコマンドを使用できます。 これもまた、現在インストールされているバージョンの宝石のリストを提供します(つまり ローカルジェム)。

次のコマンドを実行して、どのgemが古くなっているかを確認します。

gem outdated

# builder (3.1.4 < 3.2.2)
# bundler (1.5.2 < 1.5.3)
# coffee-script-source (1.6.3 < 1.7.0)
# jquery-rails (3.0.4 < 3.1.0)

宝石の更新


更新が必要なgemを確認したら、updateコマンドを使用して更新できます。

以下を実行してgemを更新します。

# Usage: [sudo] gem update [name]
# Example:
gem update bundler

# Updating installed gems
# Updating bundler
# Fetching: bundler-1.5.3.gem (100%)
# Successfully installed bundler-1.5.3
# Parsing documentation for bundler-1.5.3
# Installing ri documentation for bundler-1.5.3
# Installing darkfish documentation for bundler-1.5.3
# Done installing documentation for bundler after 6 seconds
# Gems updated: bundler

宝石の削除/削除


ローカルマシンからgemを削除するには、installと同様に、uninstallコマンドを使用します。

次のコマンドを実行して、gemを削除/削除します。

# Usage: [sudo] gem uninstall [name]
# Example:
gem uninstall bundler

または、バージョンを指定して、そのバージョンのみを削除することもできます。

# Usage: [sudo] gem uninstall [name] -v [version]
# Example:
gem uninstall bundler -v 1.0.0

# Successfully uninstalled bundler-1.0.0

宝石のドキュメントを読む


宝石について最も便利で重要なことの1つは、宝石をすばやく操作できるようにするための優れたドキュメントが付属していることです。 ドキュメントを使用する最も簡単な方法は、インストールされているすべてのgemの使用手順にアクセスできるローカルサーバーを実行することです。

ドキュメントサーバーを実行するには、次を実行します。

gem server

# Server started at http://0.0.0.0:8808
# Server started at http://[::]:8808

これで、お気に入りのブラウザを使用してhttp://0.0.0.0:8808にアクセスし、詳細を知りたい宝石を見つけて、そのドキュメントを読むことができます。

投稿者: https ://twitter.com/ostezer