Gem not found in Ruby cron job in RVM env

后端 未结 3 1697
再見小時候
再見小時候 2020-12-30 13:48

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.

相关标签:
3条回答
  • 2020-12-30 14:17

    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.

    0 讨论(0)
  • 2020-12-30 14:18

    To load default RVM ruby environment for cron jobs, here is what I setup for user-mode RVM, assume the user is ohho, home folder is /home/ohho. To edit, enter crontab -e in command line:

    MAILTO=""
    SHELL=/bin/bash
    BASH_ENV=/home/ohho/.bash_profile
    HOME=/home/ohho
    
    * * * * * rails -v > /home/ohho/env.txt
    

    The last line is for testing rails (if installed) can be invoked properly. You should also check whether ~/.bash_profile loads the RVM environment (which is default for bash).

    A detail explanation of SHELL and BASH_ENV can be found in Daniel's answer.

    0 讨论(0)
  • 2020-12-30 14:21

    Or you can simply try

    rvm cron setup # let RVM do your cron settings

    which worked for me. via https://coderwall.com/p/vhv8aw

    0 讨论(0)
提交回复
热议问题