我有一个仅发布到Github的自定义gem,而不是rubygems.org,并更新了它的依赖项以包含gem' net-http-persistent'。
我使用了我之前为其他依赖项(使用.gemspec文件)执行的相同格式,bundle update
仍然可以正常工作。但是,现在当我尝试将主应用程序(包括我的自定义gem)部署到带有Capistrano的Staging服务器时,我发现了这个错误:
DEBUG [20cee5f9] Command: cd /var/www/inside/releases/20160418182647 && ( RAILS_ENV=staging ~/.rvm/bin/rvm 2.1.0@rails4.1 do bundle exec rake assets:precompile )
DEBUG [20cee5f9] rake aborted!
DEBUG [20cee5f9] LoadError: cannot load such file -- net-http-persistent
DEBUG [20cee5f9] /var/www/inside/shared/bundle/ruby/2.1.0/bundler/gems/series25-5465e368ff56/lib/series25.rb:4:in `require'
DEBUG [20cee5f9] /var/www/inside/shared/bundle/ruby/2.1.0/bundler/gems/series25-5465e368ff56/lib/series25.rb:4:in `<top (required)>'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `require'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `each'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:72:in `block in require'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `each'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler/runtime.rb:61:in `require'
DEBUG [20cee5f9] /home/charles/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.2/lib/bundler.rb:132:in `require'
DEBUG [20cee5f9] /var/www/inside/releases/20160418182647/config/application.rb:9:in `<top (required)>'
DEBUG [20cee5f9] /var/www/inside/releases/20160418182647/Rakefile:4:in `require'
DEBUG [20cee5f9] /var/www/inside/releases/20160418182647/Rakefile:4:in `<top (required)>'
DEBUG [20cee5f9] (See full trace by running task with --trace)
cap aborted!
我只需运行rake assets:precompile
即可在本地复制错误。我尝试了很多潜在的修复,包括在本地安装net-http-persistent并将其添加到我的Gemfile中,但无济于事。
以下是我的gemfile中自定义gem的样子:
gem 'series25', git: 'git://github.com/chapmanu/series25.git'
我提出这个问题有点匆忙,所以如果我错过任何相关信息,请告诉我。提前谢谢你的帮助!
答案 0 :(得分:0)
事实证明,虽然gemspec文件需要spec.add_dependency 'net-http-persistent'
,但我在其中放置所有需要语句的文件(在我的情况下和大多数情况下类似于lib/mygem.rb
)需要{{1} }。
当然这个宝石特别适用于我的情况,但希望对某些遇到类似问题的人有用。