2012-03-12 63 views
32

我用RVM安裝了Ruby 1.9.3,它工作正常。然後,我在一個ruby C源文件中做了一些修改,我想重新編譯並重新安裝它,以便我可以使用這些更改。但是,我還沒有找到任何一種rvm重新編譯命令。如何用RVM重新編譯ruby?

回答

17

啊哈。 rvm uninstall [RUBY]後面rvm install [RUBY]是否有用。

或更好:

rvm reinstall [RUBY] 
11

rvm reinstall [RUBY]


+0

我不這麼認爲。該文件說:「這相當於: RVM刪除[紅寶石字符串] RVM安裝[紅寶石字符串] 」 – Dogweather 2012-03-12 07:36:51

7

用途:

rvm install --force 

它明確要求RVM利用現有資源,在早期版本中,這是默認的 - 但可能很混亂。

的療法,以便其他命令安裝:

rvm try_install <ruby> 

如果尚未安裝將只安裝(你的問題)

rvm reinstall <ruby> 

是一樣的:

rvm remove [--gems] <ruby> 
rvm install <ruby> 

明顯用reinstall 節省了一些時間並使用[--gems]也可以移動用ruby安裝的所有寶石。

mkdir -p projects/smth && cd projects smth 
rvm use [email protected] --install --create --ruby-version 

會去的項目,安裝1.9.3(如果尚未安裝),創造寶石,創造.ruby-version文件 其他FLGS(V之前僅在RVM頭1.11.0):

  • --rvmrc - 在RVM已經上市 - v在僅在RVM頭1.11.0 - - 將創建.rvmrc文件
  • --versions-conf。將創造.versions.conf - 爲您的項目配置文件,你可以把有什麼重要信息ñ你的項目......類似的node.js版本
47

使用rvm [reinstall|install]的問題是,它會獲取並使用預編譯的二進制如果能找到。有時,你真的想要從源代碼重建,可能是因爲你想使用更新版本的GCC(例如4.8或4.9)。

正確的標誌是--disable-binary,不--force

rvm reinstall --disable-binary 2.1 
+0

有趣,感謝小費 – Dogweather 2014-02-14 21:57:59

+2

當我在Fedora 23升級這幫助 - > 24, mysql2 gem不再有效,因爲它是針對早期的libmysql編譯的。 – metaforge 2016-07-01 15:59:05