2 votes

GemNotFound rake lors de l'utilisation de chaque fois en développement

J'obtiens cette erreur que je ne comprends pas (je suis assez novice en matière de rails) lorsque j'utilise la gemme 'whenever' en mode développement.

Ce que j'ai fait c'est mettre à jour config/schedule.rb et exécuter

whenever --update-crontab --set environment='development'

crontab -l liste :

* * * * * /bin/bash -l -c 'cd /home/vic/Desktop/WorkflowProject && bundle exec bin/rails runner -e development '\''Task.new2'\'' >> log/whenever.log 2>&1'

à config/schedule.rb

set :output, 'log/whenever.log'

every 1.minute do
  runner "Task.new2"
end

à log/whenever.log

bundler: failed to load command: bin/rails (bin/rails)
Bundler::GemNotFound: Your bundle is locked to rake (11.3.0), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of rake (11.3.0) has removed it. You'll need to update your bundle to a different version of rake (11.3.0) that hasn't been removed in order to install.
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/definition.rb:179:in `rescue in specs'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/definition.rb:173:in `specs'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/definition.rb:233:in `specs_for'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/definition.rb:222:in `requested_specs'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/runtime.rb:118:in `block in definition_method'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/runtime.rb:19:in `setup'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler.rb:99:in `setup'
/home/vic/.rvm/gems/ruby-2.3.1/gems/bundler-1.13.2/lib/bundler/setup.rb:20:in `<top (required)>'
/home/vic/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/vic/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'

J'apprécierais grandement votre aide, merci beaucoup !

0voto

Jayaprakash Points 1162

Essayez les commandes suivantes.

gem install rubygems-bundler
gem regenerate_binstubs

Réf : este

0voto

Priyank Gupta Points 371

Vous êtes sûr d'avoir bundler installé ? Essayez d'exécuter bundle install dans le répertoire de votre application. Si non, voyez la réponse de Jayaprakash ci-dessus. Si oui, essayez bundle exec whenever --update-crontab --set environment='development' .

Mise à jour : Ahh, j'ai manqué le fait que vous voyez une erreur lorsque votre tâche s'exécute. Essayez ceci dans votre config/schedule.rb

env :PATH, ENV['PATH']
set :output, "#{ Whenever.path }/log/whenever.log"

every 1.minute do
  runner "Task.new2"
end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X