2015-09-29 1 views
3

Получил ошибку во всех моих заданиях cron, журнал был: Ошибка не влияет на мое веб-приложение, но мои фоновые задания. Похоже на ошибку в моей системе, но не знаю, как ее исправить. Есть 2 версии json, я попытался удалить их, но json-1.8.1 не может, потому что это значение по умолчанию. Пожалуйста, помогите. Спасибо!Не удалось найти json-1.8.3 в любом из источников (Bundler :: GemNotFound)

/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:

gem list json 

* МЕСТНЫЕ GEMS *

JSON (1.8.3, 1.8.1) multi_json (1.11.2)

Gem файла :

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 

ответ

1

Я бы рекомендовал использовать whenever gem для задач cron. Я считаю, что он более надежный для работы с версиями gem, и вам не нужно беспокоиться о системных драгоценных камнях. Это должно решить проблему для вас (надеюсь).

+0

Поблагодарите Tom Fast за дополнительную информацию, я попытаюсь использовать этот камень в своем следующем проекте. –

3

Трудно прокомментировать, не видя работу cron. Вы используете RVM; возможно ли, что вы не используете правильный рубин в своей работе cron? Если вы этого не сделаете, это объяснит, почему ваше веб-приложение работает нормально, но ваши фоновые задания не работают.

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

+0

Спасибо за полезную ссылку Jordan Hiltunen. (https://coderwall.com/p/vhv8aw/getting-ruby-scripts-working-with-bundler-rvm-and-cron) –

+0

https://stackoverflow.com/a/44438364/784318 выглядит многообещающим – Besi

0

Все мои хрон рабочие работают в настоящее время. Я узнал, что моя текущая среда 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) 

И в конце концов, все фоновые задания снова работают.

Смежные вопросы