耙任务找不到rvm?

时间:2015-09-23 18:21:42

标签: ruby-on-rails linux ssh rake

我有一个ubuntu服务器设置来运行带有RVM的Rails 4应用程序。当我进入服务器并运行ruby -v时,它会显示出来 ruby 2.2.0p0(2014-12-25修订版49005)[x86_64-linux]

这是我通过rvm设置的正确ruby版本。但是,当我尝试使用net / ssh运行rake任务时,它看不到rvm而是输出 红宝石1.9.3 这是默认的系统ruby。我在两次尝试中都使用相同的ssh用户。

如何获取rake任务来识别rvm?我的脚本如下

require 'net/ssh'

desc "Deploy site to production"

task :deploy => :environment do

  commands = [
    "ruby -v"
  ]

  Net::SSH.start('mysite.com', 'deployuser') do |ssh|
    commands.each { |c| puts ssh.exec!(c) }
    ssh.loop
  end

end

1 个答案:

答案 0 :(得分:0)

这很可能是因为使用Net :: SSH时未加载bash配置文件。用户的配置文件设置RVM版本。

我在尝试运行cron作业时已经看过了。根据{{​​3}},您可以创建一个包装器脚本来设置您需要的ruby版本/ gems环境。类似的东西:

.show()

您可能需要根据您的环境进行适当调整