コンピュータ上に複数の宝石をインストールするための最良の方法?

StackOverflow https://stackoverflow.com/questions/1129208

  •  13-09-2019
  •  | 
  •  

質問

簡単な方法があり、Rubyスクリプトを実行するとき、それは自動的にスクリプトに必要な宝石をインストールするために取得する?

たとえば、これらはRubyスクリプトの先頭にステートメントを必要と考えてみます。

require 'net/http'
require 'fileutils'
require 'archive/zip'

さて、私は、Rubyで特定のPC上で実行するには、このスクリプトのために、コマンド「宝石は、アーカイブ・ジップインストール」をすることを(人間とプログラマーとして)知っているスクリプトが動作する前に、最初に実行する必要があります。このスクリプトは、パソコンの数十上で実行する必要がある場合でも、最初にインストールされているすべての宝石の依存関係を確保することから私を保存できることはありますか?

また、どのようないくつかの宝石がある場合は必要?

役に立ちましたか?

解決

これはあなたが、私は、サーバーは、私は私がどこかに私の宝石のリストをダンプする方法を設定しているときに安全...

の後ですが、正確に何である場合は、

わかりません

gem list > my_gems.txt

私は宝石をインストールするには、ボックスを再構築または私はこのスクリプトを使用して他のマシンを構築する必要がある場合は...

bulk_gems.rb
#! /usr/local/bin/ruby

STDIN.readlines.each do |l|
 m = l.match /^(\S+) \((.*)\)/
 unless m.nil?
   gem_name, versions = m[1], m[2].split(',')
   versions.each do |v|
     system "gem install #{gem_name} --version #{v} --ignore-dependencies"
   end
 end
end

more my_gems.txt | bulk_gems.rb

他のヒント

gem unpackするを使用することにより、ディレクトリの中に宝石を解凍することができます。そこから、あなたはあなたのスクリプトの中でそれらを含めることができます。例えば、ランダム宝石morse(エンコード/モールス信号をデコードする宝石を)選ぶ、/のは、私が/ディレクトリに宝石をそれを置くためにgem unpack morseを使用しましょう。それはバージョンですので、それは、ディレクトリモールス-0.0.2に解凍します。

$LOAD_PATH << './gems/morse-0.0.2/lib'
require 'morse'
# The gem is included, and Morse is now defined.
scroll top