2013-07-21 44 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?不知何故,我能夠在我的開發服務器上做到這一點。看起來它是偶然發生的。 –