通过Capistrano部署Rails应用程序时出现RVM错误

时间:2011-03-09 22:38:11

标签: ruby-on-rails-3 capistrano rvm

历史:

  • 阅读将Rails3应用程序部署到a Mediatemple DV服务器。
  • 在服务器上安装了RVM,ruby和必备的宝石。
  • 如果我将其FTP起来,网站工作正常。
  • 一切都很好。

然后我决定按照“使用Rails进行敏捷Web开发”对GIT / cap部署进行适当的部署和设置。

  • 尝试使用上限进行部署,但生产网站无法使用宝石时出现错误。
  • 四处阅读并意识到我应该选择系统范围的RVM安装。
  • 删除了所有宝石和RVM。
  • 系统安装RVM。
  • 上限部署错误“bash:/home/foo/.rvm/bin/rvm-shell:没有这样的文件或目录”,这是有道理的 - 主目录中没有.rvm /。
  • 从最初安装RVM以作为用户使用时,我想到了一些问题,我删除了用户,删除了主目录,并重新创建了具有权限的用户。
  • 关于cap部署的相同错误“bash:/home/foo/.rvm/bin/rvm-shell:没有这样的文件或目录”

现在的情况是:

对于foo,.bashrc包含最后一行:

[[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'

当我发出:

type rvm | head -1

响应是“rvm是一个函数”。

/ etc / rvmrc包含

if [[ ! -s "$HOME/.rvm/scripts/rvm" ]]; then
  umask g+w
  export rvm_selfcontained=0
  export rvm_prefix="/usr/local/"
fi

这里没有想法,希望得到一些建议。

3 个答案:

答案 0 :(得分:76)

下次尝试在你的capistrano中添加:

set :rvm_type, :system

答案 1 :(得分:5)

似乎rvm-shell不在你的rvm安装目录中。运行此命令

rvm get head

然后你就可以在你的rvm bin目录中找到它。

答案 2 :(得分:0)

我只是想加入@ imonyse的评论。

对于某些部署来说,rvm的头部分支可能太不稳定了。我知道我们不赞成使用的SLES盒子有窒息的倾向。获得最新的稳定版本可能是明智之举。

rvm get stable

也不要在运行生产代码的旧服务器上执行此操作,因为它可能会产生不良后果。