尝试在EC2部署上启动脚本 - / usr / bin / bundle:/ usr / bin / ruby​​:错误的解释器错误

时间:2012-12-19 02:31:56

标签: ruby-on-rails ruby ruby-on-rails-3 amazon-ec2 rvm

我希望在我的Amazon服务器部署时自动运行脚本。但是,我在日志中不断收到以下错误:

/root/start.sh: /usr/bin/bundle: /usr/bin/ruby: bad interpreter: No such file or directory

我已经尝试过按摩我的启动脚本,但尚未找到解决方案。我可以手动加载神文件,但是当我启动我的机器时,我收到以下错误。 如何设置它以便在我的脚本运行时检测到我的bundler / ruby​​?

which ruby => /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby

这是我的脚本应该自动运行(start.sh)

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

cd /root/Rails3/www_rails
RAILS_ENV=production bundle exec god -c /root/Rails3/www_rails/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log

1 个答案:

答案 0 :(得分:1)

RVM为您的问题提供文档https://rvm.io/integration/god/

此外,您可以尝试此脚本:

cat /dev/null > /root/log
echo "Starting environment for $(whoami) at $(date)" >> /root/log

export RAILS_ENV=production
export RAILS_ROOT=/root/Rails3/www_rails
export QUEUE_NAME=place_matching

export HOME=/root

"$HOME/.rvm/bin/rvm" in $RAILS_ROOT do bundle exec god -c $RAILS_ROOT/god/resque_generic.god >> /root/log 2>&1
echo "Environment running at $(date)" >> /root/log

这是rvm的新标记,基本上可以写成:

rvm in /path/to/project do <command> ...

并且相当于你想要做的事情。

更重要的是,如果您将其作为拥有RVM的用户运行,那么您的项目.rvmrc也需要为该新用户信任。或者,您可以使用其中一个不需要信任的新项目文件:

  • .ruby-version =&gt; 1.9.3@project
  • Gemfile =&gt; #ruby=1.9.3@project / ruby="1.9.3"
  • .versions.conf =&gt; ruby=1.9.3@project

请注意,第二种形式也会进行捆绑器验证,并且不允许使用patchlevel或gemset名称。