我有一个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
答案 0 :(得分:0)
这很可能是因为使用Net :: SSH时未加载bash配置文件。用户的配置文件设置RVM版本。
我在尝试运行cron作业时已经看过了。根据{{3}},您可以创建一个包装器脚本来设置您需要的ruby版本/ gems环境。类似的东西:
.show()
您可能需要根据您的环境进行适当调整