I'm trying to run a simple ruby script on my old PPC machine running 10.5 in an RVM environment.
Searching on SO, I've followed the chosen answer from this post.
This is the line in cron as a result:
SHELL=/bin/bash
00 * * * * BASH_ENV=~/.bash_profile && /bin/bash -c '~/deggy/onlineGW.rb'
This command runs fine in Bash at the root of the user sam.
Here's the salient part of my script:
#!/usr/bin/env ruby
require 'open-uri'
require 'nokogiri'
...
Here's the output of the error from cron:
X-Cron-Env: <SHELL=/bin/bash>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=sam>
X-Cron-Env: <USER=sam>
X-Cron-Env: <HOME=/Users/sam>
Date: Mon, 6 Jan 2014 03:15:00 -0600 (CST)
/Users/sam/deggy/onlineGW.rb:3:in `require': no such file to load -- nokogiri (LoadError)
OK, since I'm running RVM I have set my default ruby to 1.9.3 and as I mentioned above, the command executes in Terminal but not in cron. Is there another environment in play?
So clearly, there's something I'm overlooking. Help me to see it, sam
Or you can simply try
rvm cron setup # let RVM do your cron settings
which worked for me. via https://coderwall.com/p/vhv8aw
I configured several different operating systems to work with a couple of CRON flavors and RVM.
I first tried RVM's official solution to the problem but didn't work under FreeBSD and Gentoo. I had to manually add all relevant paths as showed bellow but first type crontab -e
in order to launch the crontab editor[1]:
# atmat's crontab configuration
SHELL=/bin/bash
PATH=/home/atma/.rvm/gems/ruby-1.9.3-p0/bin:/home/atma/.rvm/gems/ruby-1.9.3-p0@global/bin:/home/atma/.rvm/rubies/ruby-1.9.3-p0/bin:/home/atma/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i486-pc-linux-gnu/gcc-bin/4.5.3
RUBYLIB=/home/atma/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1
GEM_HOME='/home/atma/.rvm/gems/ruby-1.9.3-p0'
GEM_PATH='/home/atma/.rvm/gems/ruby-1.9.3-p0:/home/atma/.rvm/gems/ruby-1.9.3-p0@global'
RUBYOPT=rubygems
%nightly,mail(no) * 8-9 /home/atma/.rvm/rubies/ruby-1.9.3-p0/bin/ruby /usr/local/bin/morula -s username update
The above example is working under Gentoo GNU/Linux using fcron a more flexible, beautiful and powerful solution to standard cron, but will work with any cron.
[1] This command will open crontab
with your default system editor.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With