サーチ…


ルビーの宝石をインストールする

このガイドはRubyがすでにインストールされていることを前提としています。 Ruby < 1.9を使用している場合は、 RubyGemを手動でインストールする必要があります

ruby gemをインストールするには、次のコマンドを入力します。

gem install [gemname]

gem依存関係のリストを持つプロジェクトで作業している場合、これらはGemfileという名前のファイルにリストされます。プロジェクトに新しいgemをインストールするには、 Gemfile次のコード行を追加します。

gem 'gemname'

このGemfileは、プロジェクトが必要とする依存関係をインストールするためにBundler gemによって使用されますが、実行してBundlerを最初にインストールする必要があります。

gem install bundler

ファイルを保存し、次のコマンドを実行します。

bundle install

バージョンの指定

バージョン番号は、次のような-vフラグを付けて、liveコマンドで指定することができます。

gem install gemname -v 3.14

Gemfileバージョン番号を指定するときは、いくつかのオプションがあります:

  • バージョン指定なし( gem 'gemname') - Gemfile内の他のgemと互換性のある最新バージョンをインストールします。
  • 厳密に指定されたバージョン( gem 'gemname', '3.14' ) - バージョン3.14のみをインストールしようとします(これがGemfile内の他のgemと互換性がない場合は失敗しGemfile )。
  • 楽観的な最小バージョン番号( gem 'gemname', '>=3.14' ) - Gemfile内の他のgemと互換性のある最新バージョンをインストールしようとしますが、 3.14以上のバージョンが互換性がない場合は失敗します。演算子>を使用することもできます。
  • 悲観的な最小バージョン番号( gem 'gemname', '~>3.14' ) - gem 'gemname', '>=3.14', '<4'を使用することと機能的に同等です。言い換えれば、 最終期間以降の数字だけが増加することが許される。

ベストプラクティスとしては、 rbenvrvmのようなRubyのバージョン管理ライブラリの1つを使いたいかもしれません。これらのライブラリを使用して、異なるバージョンのRubyランタイムと宝石をインストールすることができます。したがって、プロジェクトで作業する場合、これは、ほとんどのプロジェクトが既知のRubyバージョンに対してコード化されているため、特に便利です。

github / filesystemからのgemインストール

githubやファイルシステムからgemをインストールすることができます。もしgemがgitから、あるいは何らかの形でファイルシステム上でチェックアウトされていれば、それを使ってインストールすることができます

gem install --local path_to_gem/filename.gem

githubからgemをインストールする。 githubからソースをダウンロードする

mkdir newgem
cd newgem
git clone https://urltogem.git

宝石を作る

gem build GEMNAME.gemspec
gem install gemname-version.gem

必要なgemがコード内からインストールされているかどうかを確認する

コード内から必要な宝石がインストールされているかどうかを確認するには、次のものを使用します(nokogiriを例として使用します)。

begin
  found_gem = Gem::Specification.find_by_name('nokogiri')
  require 'nokogiri'
  ....
  <the rest of your code>
rescue Gem::LoadError
end

ただし、これをコード内の機能の設定に使用できる関数にさらに拡張することができます。

def gem_installed?(gem_name)
  found_gem = false
  begin
    found_gem = Gem::Specification.find_by_name(gem_name)
  rescue Gem::LoadError
     return false
  else
    return true
  end
end

これで、必要なgemがインストールされているかどうかを確認し、エラーメッセージを表示できます。

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  printf "nokogiri gem required\n"
  exit 1
end

または

if gem_installed?('nokogiri')
  require 'nokogiri'
else
  require 'REXML'
end

GemfileとBundlerの使用

Gemfileは、アプリケーションの依存関係を整理するための標準的な方法です。基本的なGemfileは次のようになります:

source 'https://rubygems.org'

gem 'rack'
gem 'sinatra'
gem 'uglifier'

以下のように、あなたが望む宝石のバージョンを指定することができます:

# Match except on point release. Use only 1.5.X
gem 'rack', '~>1.5.2'
# Use a specific version.
gem 'sinatra', '1.4.7'
# Use at least a version or anything greater.
gem 'uglifier', '>= 1.3.0'

git repoから宝石をまっすぐに引き出すこともできます:

# pull a gem from github
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git'
# you can specify a sha
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', sha: '30d4fb468fd1d6373f82127d845b153f17b54c51'
# you can also specify a branch, though this is often unsafe
gem 'sinatra', git: 'https://github.com/sinatra/sinatra.git', branch: 'master'

また、使用されているものに応じて宝石をグループ化することもできます。例えば:

group :development, :test do
    # This gem is only available in dev and test, not production.
    gem 'byebug'
end

アプリケーションを複数のプラットフォームで実行可能にする必要がある場合、特定のプラットフォームを実行するプラットフォームを指定できます。例えば:

platform :jruby do
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-postgres'
end

platform :ruby do
  gem 'pg'
end

Gemfileから全てのgemをインストールするには:

gem install bundler
bundle install

バンドル/インライン(バンドラv1.10以降)

時々あなたは誰かのためのスクリプトを作成する必要がありますが、彼は彼のマシンに何を持っているか分からない。あなたのスクリプトに必要なものはすべてありますか?心配無用。 Bundlerには素晴らしい機能があります。

これはgemfileメソッドを提供し、スクリプトが実行される前に、必要なすべての宝石をダウンロードして必要とします。少しの例:

require 'bundler/inline' #require only what you need

#Start the bundler and in it use the syntax you are already familiar with
gemfile(true) do 
  source 'https://rubygems.org'
        gem 'nokogiri', '~> 1.6.8.1'
        gem 'ruby-graphviz'
end


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow