2014-01-15 51 views
8

我們使用RVM來管理幾十個項目的紅寶石和寶石。如何在不離開當前目錄的情況下重新加載.ruby-version/.ruby-gemset/.rvmrc?

有時我會可以編輯.ruby-version.ruby-gemset文件,或拉離我們的VCS那些文件(S)的新版本,但當然RVM不知道這些變化,除非我告訴它。如果這些變化來自VCS,即使我可能不知道它們。那麼做這件事的最好方法是什麼?

如果能夠自動化進程,以便在我從存儲庫獲取更改時自動完成,那將是非常好的。

我知道讓RVM重新讀取這些文件的唯一方法是將cd複製到另一個目錄,然後返回到項目目錄。這顯然很簡單,很容易,但它似乎不僅僅是一點點不雅,也不是自我記錄。

我希望能有一些像rvm reload這樣的命令(它存在但是還有別的東西)來重新讀取項目文件,但是我找不到任何這樣的東西。

回答

10

我想我已經找到了答案,但由於它是無證的,我不知道它是否真的合法。

看來,如果你這樣做:

$ rvm use . 

它會明顯(重新)閱讀.ruby-version.ruby-gemset文件(不知道的.rvmrc文件,因爲我們不使用它們)。我通過嘗試rvm use .ruby-versionrvm use .ruby-gemset發現了這一點,兩者似乎都會導致RVM讀取兩個'點'文件。

此功能目前不是(如RVM 1.23.13),在文檔中提到(即rvm help use)。

也許應該是?

1

我用.rvmrc,我用來做

cd;cd -

,但現在我做

cd .

如果我做

rvm use .

我得到

Could not determine which Ruby to use; . should contain .rvmrc or .versions.conf or .ruby-version or .rbfu-version or .rbenv-version, or an appropriate line in Gemfile. (see: 'rvm usage')

,我真的不認爲是真實的(因爲我有一個.rvmrc文件),也許我只是不明白。

編輯:

我使用RVM 33年1月25日

我不是故意要遇到的關鍵,只是想添加更多的信息!

+1

正如我所提到的,我的解決方案沒有記錄,因此可能相當脆弱。也許你可以用你正在使用的RVM版本更新你的答案,與我的答案進行比較。 'cd .'聽起來更安全一些,這並沒有發生在我身上。 – Lambart

相關問題