【问题标题】:RVM error with deploying Rails app via Capistrano通过 Capistrano 部署 Rails 应用程序时出现 RVM 错误
【发布时间】:2011-07-12 07:24:48
【问题描述】:

历史:

  • 阅读将 Rails3 应用程序部署到 Mediatemple DV 服务器。
  • 在服务器上安装了 RVM、ruby 和基本 gem。
  • 如果我通过 FTP 上传,站点可以正常工作。
  • 一切顺利。

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

  • 尝试使用 cap 进行部署,但在生产站点无法使用 gem 时出现错误。
  • 阅读并意识到我可能应该安装系统范围的 RVM。
  • 移除所有宝石和 RVM。
  • 已安装 RVM 系统范围。
  • cap deploy 时出错“bash: /home/foo/.rvm/bin/rvm-shell: No such file or directory”,这是有道理的 - 主目录中没有 .rvm/。
  • 考虑到最初安装 RVM 以用作用户时出现问题,我删除了该用户,删除了主目录,并重新创建了具有权限的用户。
  • 在 cap deploy 上出现同样的错误“bash: /home/foo/.rvm/bin/rvm-shell: No such file or directory”

现在的情况是:

对于 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

这里的想法用完了,希望得到一些建议。

【问题讨论】:

  • 已解决。我刚刚摆脱了 RVM。现在效果很好。我将为我的开发机器保存 RVM...

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


【解决方案1】:

下次尝试将其添加到您的 capistrano 中:

set :rvm_type, :system

【讨论】:

  • 非常有帮助。或者,如果您要部署到具有单用户 rvm 安装的服务器,则可以将 :rvm_type 设置为 :user。
  • @mpapis 你怎么知道你是单用户 rvm 安装还是系统安装?我不记得我做了哪一个。
  • 你可以登录服务器运行echo $rvm_path后查看
  • @mpapis 这个命令到底是做什么的?它说“use_sudo 设置为 'false' 但需要 sudo 才能安装 rvm_type:system”,但我不确定 rvm_type:system 的后果
  • 现在如果我已经在 /usr/local 中安装了 RVM,多用户安装,为什么每次部署都需要将它添加到 deploy.rb 中?
【解决方案2】:

好像 rvm-shell 不在您的 rvm 安装目录中。运行此命令

rvm get head

然后你会在你的 rvm bin 目录中找到它。

【讨论】:

    【解决方案3】:

    我只是想添加到@imonyse 的评论。

    rvm 的 head 分支对于某些部署来说可能有点太不稳定了。我知道我们已弃用的 SLES 盒子有窒息的倾向。最好获取最新的稳定版本。

    rvm get stable
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-30
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      相关资源
      最近更新 更多