16

gemをインストールせずに、プレーンなrubyスクリプトからローカルgemを参照する必要があります。ルビーで地元の宝石を参照する方法のトレイルで、次の設定でGemfileを作成してみました。

%w(
  custom_gem
  another_custom_gem
).each do |dependency|
  gem dependency, :path => File.expand_path("../../#{dependency}", __FILE__)
end

スクリプトは次のようになります。

require 'custom_gem'
CustomGem::Do.something

これを実行すると:

bundle exec ruby script.rb

私は得る:

script.rb:1:in `require': cannot load such file -- custom_gem (LoadError) from script.rb:1:in `<main>'

を省略した場合 require 'custom_gem' 、次のようになります。

script.rb:3:in `<main>': uninitialized constant CustomGem (NameError)

gem ... :path =>̣ ...私はバンドラーなしで、スクリプト自体を書くだけで試しましたが、結果はありませんでした。gemをローカルにインストールせずに、rubyスクリプトからカスタムgemを参照する他の方法はありますか?

4

2 に答える 2

18

gem 名が Gemfile と同じであることを確認してください (例: custom_gem)

# Gemfile

source "https://rubygems.org"

gem "custom_gem", path: "/home/username/path/to/custom_gem"

bundler を使用して実際にこの gem をインストールすることを忘れないでください

bundle install

その後、スクリプトは次のように使用できるようになります。bundle exec ruby script.rb

# script.rb

require 'custom_gem'
CustomGem::Do.something
于 2012-11-25T10:20:42.660 に答える
0

Gemfile を使用せずbundle exec rake installに、gem のルート ディレクトリで実行することにより、gem のローカル バージョンをインストールし、他のインストールされた gem と同じようにそれを参照できます。

于 2019-06-22T20:15:51.107 に答える