gpt4 book ai didi

ruby-on-rails - Rake任务找不到rvm?

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:29 25 4
gpt4 key购买 nike

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

这是我通过rvm设置的正确的ruby版本。但是,当我尝试使用 net/ssh 运行 rake 任务时,它看不到 rvm 而是输出 ruby 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

最佳答案

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

我在尝试运行 cron 作业时看到过它。根据https://rvm.io/deployment/cron您可以创建一个包装脚本来设置您需要的 ruby​​ 版本/gems 环境。像这样的东西:

# find the ruby environment (one time only)
rvm env --path -- ruby-version[@gemset-name]

# set the source returned, e.g.
source /usr/local/rvm/environments/ruby-2.1.1@projectX
ruby -v

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

关于ruby-on-rails - Rake任务找不到rvm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com