我安排了这个cronjob:
ruby twitter_bots/tweet_bots.rb
tweet_bots.rb:
#!/usr/bin/ruby
require 'rubygems'
require '/home/david/twitter_bots/twitterbot.rb'
mcnulty = TwitterBot.new('jamesmcnulty')
mcnulty.tweet
mcnulty.reply
mcnulty.close
twitterbot.rb:
require 'dbi'
require 'twitter'
class TwitterBot
...
cron有这些环境变量:
SHELL=/bin/sh
PATH=/home/david/.rvm/gems/ruby-1.9.2-p290/bin:/home/david/.rvm/gems/ruby-1.9.2-p290@global/bin:/home/david/.rvm/rubies/ruby-1.9.2-p290/bin:/home/david/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
HOME=/home/david
LOGNAME=david
但它会引发此错误:
/home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- deprecated (LoadError)
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/dbi.rb:48:in `<top (required)>'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/twitter_bots/twitterbot.rb:1:in `<top (required)>'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from twitter_bots/tweet_bots.rb:5:in `<main>'
我可以看到错误来自/home/david/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/dbi.rb:48
,其中require "deprecated"
但是我安装了已弃用的gem v 2.0.1。我也尝试使用3.0.0版本。
当我手动运行它时,它可以工作。 cron有什么问题?
答案 0 :(得分:1)
我猜你需要deprecated
宝石。
尝试:
[sudo] gem install deprecated