2013-07-21 41 views
0

当我第一次开始编写Rails应用程序时,我使用了.ruby-version,因为我在RVM网站上阅读了它。我为我的两个Rails应用程序做了这个。很久以前,我不记得我输入的命令来激活它。我有七个其他应用程序,我不使用.ruby-version或.rvmrc。我所做的只是将gemset(rvm use)分配给应用程序,并且它们工作得很好。想停止在我的Rails应用程序中使用.ruby-version

这是我的情况。在我的开发服务器上,我可以通过使用rvm [email protected] --default将gemset更改为我想要使用的gemset。一旦我这样做,我做了一个包更新,以确保gemset中没有缺失宝石。之后,我仍然可以运行该应用程序。然后我删除了.ruby版本中的gemset。部署应用程序后,我仍然可以毫无问题地使用该网站。但是我的生产服务器上有不同的故事。我可以在生产服务器上执行相同的步骤,包括删除.ruby-version文件,但不知何故,它仍然会查找已删除的.ruby-version文件中的gem文件。当我将.ruby-version文件放回到应用程序中时,我必须执行软件包更新才能将所有gem安装到我试图删除的gemset中。我确信我在生产服务器上做了一些我在开发服务器上不应该做的事情。

我想改变两个应用程序,它不像其他应用程序那样使用.ruby-version。我的目标是为所有使用最新版Rails 3.2的应用程序提供一个gemset,并最终为所有Rails 4.0应用程序创建第二个gemset。

我试图在堆栈溢出的.ruby版本上进行搜索,但找不到任何相关的帖子。也许我只是度过了一个糟糕的一天,因为我肯定有人在过去几年里发表了一些关于此的文章。我试图找到在RVM网站上讨论.ruby-version的页面,但找不到它。

任何帮助表示赞赏。

UPDATE 7/22上午09时22分CDT 0915 GMT-5

我想起我的开发服务器上我做了下面的命令,准备最终的Ruby升级到Ruby 2.0。

gem update --system 2.0.3 
gem update bundler 

我在生产服务器上没有这样做。我只是执行了这两个命令,选择了我想要使用的gemset,然后删除了.ruby-version文件。该应用程序不起作用。当我把文件放回我的应用程序工作。当我做rvm gemset list它说它使用了我想在将来使用的gemset。不知何故,我能够在我的开发服务器上摆脱对.ruby-version的需求,但在我的生产服务器上却没有。

这是问题所在。这是我的.ruby-版本文件中包含的内容:

[email protected] 

RVM网站上有设置.ruby-version的逻辑。我想我没有设置gemset用于应用程序,所以系统创建了一个名为我的Rails应用程序的gemset。我早该说过了。我不希望应用程序使用它创建的gemsetname。

+0

你用什么红宝石服务器?很可能你已经将其配置为使用其他ruby或没有正确重启服务器。 – mpapis

+0

我还在运行1.9.3。我意识到我不应该使用.ruby-version,因为我没有使用它。我所做的只是选择我想要的宝石。他们工作正常。 –

回答

0

您正在使用.ruby-version与gemsets - 这是可能的RVM但不推荐,还有的宝石一个单独的文件:.ruby-gemset,你应该使用这个文件gemsets离开.ruby-version只是红宝石版本 - 这是推荐保持你的代码库 - 了解更多详情检查这个问题:Should I check in `.ruby-gemset` and/or `.ruby-version`?这个答案一起:https://stackoverflow.com/a/16738020/497756

+0

我刚刚为我的问题添加了更多信息。我已经阅读了您在评论中的链接,但无法再找到它。我对RVM有一点了解,但还不足以理解'检入'。我有几个Rails应用程序没有使用.ruby-version或.ruby-gemset(这是我的一个新术语)。我所做的就是使用rvm use [email protected] --default设置gemset。他们运行得很好。有没有办法停止使用.ruby-version?不知何故,我能够在我的开发服务器上做到这一点。看起来它是偶然发生的。 –