2011-03-09 59 views
22
部署Rails应用程序

历史:RVM错误通过Capistrano的

  • 读入部署Rails3中应用到 MEDIATEMPLE DV服务器。
  • 在服务器上安装了RVM,ruby和重要的宝石。
  • 网站工作正常,如果我把它FTP。
  • 一切都好。

然后我决定根据“使用Rails进行敏捷Web开发”,为GIT/cap部署做适当的部署和设置。

  • 尝试使用cap进行部署,但发现存在生产站点不可用的gem错误。
  • 阅读并意识到我应该去一个系统范围的RVM安装。
  • 删除了所有的宝石和RVM。
  • 已安装RVM系统。
  • cap部署错误“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' 

当我发出:

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

已解决。我刚刚摆脱如果RVM。现在效果很好。我将为我的开发机器保存RVM ... – 2011-03-10 09:13:51

回答

73

下一次尝试添加这个在您的Capistrano的:

set :rvm_type, :system 
+12

非常有帮助。或者,如果要使用单用户rvm安装部署到服务器,则可以将rvm_type设置为:user。 – 2011-07-19 18:38:25

+0

@mpapis您如何知道您是否有单用户rvm安装或系统安装?我不记得我做了哪一个。 – JohnMerlino 2013-05-10 20:56:58

+0

你可以在登录到服务器后检查并运行'echo $ rvm_path' – mpapis 2013-05-10 21:01:05

5

好像RVM壳是不是在你的RVM安装目录。运行此命令

rvm get head 

然后你就会得到它的权利在你的RVM bin目录。

0

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

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

rvm get stable 

也不要在运行生产代码的真正旧服务器上这样做,因为它可能会产生不希望的结果。