【问题标题】:Could not find json-1.8.3 in any of the sources (Bundler::GemNotFound)在任何源中都找不到 json-1.8.3 (Bundler::GemNotFound)
【发布时间】:2015-09-29 02:48:10
【问题描述】:

我的所有 cron 作业都出错,日志是: 该错误不会影响我的 Web 应用程序,但不会影响我的后台作业。 我的系统似乎有错误,但不知道如何修复它。 有 2 个版本的 json,我试图卸载它,但 json-1.8.1 不能,因为它是默认的。 请帮忙。 谢谢!

/root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find json-1.8.3 in any of the sources (Bundler::GemNotFound)
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/spec_set.rb:85:in `map!'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/spec_set.rb:85:in `materialize'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/definition.rb:140:in `specs'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/definition.rb:185:in `specs_for'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/definition.rb:174:in `requested_specs'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/environment.rb:18:in `requested_specs'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/runtime.rb:13:in `setup'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler.rb:127:in `setup'
from /root/.rvm/gems/ruby-2.2.0/gems/bundler-1.10.5/lib/bundler/setup.rb:18:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /usr/local/rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

宝石清单:

gem list json

* 本地宝石 *

json (1.8.3, 1.8.1) multi_json (1.11.2)

宝石文件:

gem 'rails', '4.2.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'therubyracer', platforms: :ruby

gem 'mysql2', '~> 0.3.18'
gem 'bcrypt', '3.1.7'
gem 'paperclip'
gem "iconv", "~> 1.0.3"
gem 'gravtastic'

gem 'execjs'
gem 'nokogiri'
gem 'twilio-ruby'

gem 'private_pub'
gem 'thin'
gem 'json', '~> 1.8.3'

gem 'redis'
gem 'resque', :require => "resque/server"
gem 'resque-scheduler'
gem 'resque-cleaner'
gem 'redis-mutex'
gem 'redis-classy', '~> 2.2.0'

gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc


group :development, :test do
  gem 'byebug'
  gem 'web-console', '~> 2.0'

  gem 'spring'
  gem 'god'
end

【问题讨论】:

    标签: ruby-on-rails ruby json


    【解决方案1】:

    如果没有看到有问题的 cron 作业,很难发表评论。 您正在使用 RVM;您是否有可能没有在您的 cron 工作中调用正确的 ruby​​?如果不是,这将解释为什么您的 Web 应用程序运行良好,但您的后台作业却失败了。

    Missing required gems when execute cron created by whenever gem in production environment

    https://coderwall.com/p/vhv8aw/getting-ruby-scripts-working-with-bundler-rvm-and-cron

    【讨论】:

    【解决方案2】:

    我建议将whenever gem 用于 cron 任务。我发现它在处理 gem 版本时更可靠,然后你就不必担心系统 gem。这应该为您解决问题(我希望)。

    【讨论】:

    • 感谢 Tom Fast 提供更多信息,我将尝试在我的下一个项目中使用该 gem。
    【解决方案3】:

    我所有的 cron 作业现在都在工作。我发现我当前的 rvm 环境没有在 crontab -e 中列出。但我不知道为什么路径改变了,因为上次一切正常。顺便说一句,

    我得到了它:

    First (get path):
    `rvm env --path`
    Sencondly (add the path like):
    `PATH="/root/.rvm/environments/ruby-2.2.0:...."`
    Lastly (I updates some Gem version in Gemfile like mysql2 ... then bundle install)
    

    最终,所有后台作业都重新开始工作了。

    【讨论】:

      猜你喜欢
      • 2014-06-05
      • 2014-06-18
      • 2018-04-08
      • 2012-04-19
      • 2015-03-04
      • 2014-07-11
      • 2012-06-08
      • 2019-11-16
      • 2014-06-05
      相关资源
      最近更新 更多