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

Adr*_*ian 24 capistrano rvm ruby-on-rails-3

历史:

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

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

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

现在的情况是:

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

[[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'
Run Code Online (Sandbox Code Playgroud)

当我发出:

type rvm | head -1
Run Code Online (Sandbox Code Playgroud)

响应是"rvm是一个函数".

/ etc/rvmrc包含

if [[ ! -s "$HOME/.rvm/scripts/rvm" ]]; then
  umask g+w
  export rvm_selfcontained=0
  export rvm_prefix="/usr/local/"
fi
Run Code Online (Sandbox Code Playgroud)

在这里用尽了想法,并希望得到一些建议.

mpa*_*pis 76

下次尝试在capistrano中添加:

set :rvm_type, :system
Run Code Online (Sandbox Code Playgroud)

  • 很有帮助.或者,如果要部署到具有单用户rvm安装的服务器,则可以将:rvm_type设置为:user. (12认同)

小智 5

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

rvm get head
Run Code Online (Sandbox Code Playgroud)

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