我需要从普通的 ruby 脚本引用本地 gem,而不安装 gem。追寻着如何在 ruby 中引用本地宝石? https://stackoverflow.com/questions/6444827/how-to-refer-a-local-gem-in-ruby,我尝试使用以下设置创建 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
I get:
script.rb:1:in `require': cannot load such file -- custom_gem (LoadError) from script.rb:1:in `<main>'
如果我省略 require 'custom_gem'
, I get:
script.rb:3:in `<main>': uninitialized constant CustomGem (NameError)
我什至尝试过没有捆绑器,只是写gem ... :path =>̣ ...
在脚本本身中,但没有结果。是否有其他方法可以从 ruby 脚本引用自定义 gem,而无需在本地安装 gem?
确保您的 gem 名称与 Gemfile 中的名称相同(例如custom_gem
)
# Gemfile
source "https://rubygems.org"
gem "custom_gem", path: "/home/username/path/to/custom_gem"
不要忘记使用捆绑器实际安装这个 gem
bundle install
之后,该脚本应该可以使用了bundle exec ruby script.rb
# script.rb
require 'custom_gem'
CustomGem::Do.something
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)