我正在尋求一種更簡化和可靠的方法,以在操作系統更新後保持我的rvm環境完好無損。我使用Mountain Lion,rvm 1.18.16和自制軟件,它有readline,gettext,libxml2,libxslt,qt,gtk + - 通常爲我打破的寶石是nokogiri和水豚 - webkit系統更新後更新所有RVM紅寶石和寶石的最佳方式?
更新後兩次Mountain Lion和XCode,我的本地擴展寶石和Ruby已經遭到破壞,我不得不花時間讓所有的東西重新開始工作。我不得不懷疑我是否按照最佳做法在此類系統更新後獲取所有rvm組件。
通常會發生的事情是,本機擴展的gem正在鏈接不再可用的舊庫,特別是與圍繞Mountain Lion的libxml問題。下面是我爲了讓系統在所有項目中恢復聯機而採取的基本步驟(我在rvm下安裝了大約8個Ruby版本,所以這很乏味!)。
首先,通過App Store更新Mountain Lion和XCode。
其次,更新與自制程序:
brew update
brew upgrade
然後列出你的紅寶石,並開始重新編譯每一個與...
rvm list
rvm reinstall ruby-1.9.2-p290
rvm reinstall ruby-1.9.3-p392
...
注:我也嘗試:
rvm all do reinstall
但是這給了我這個錯誤:「重新安裝:找不到命令」
接下來,通過每個紅寶石步驟和執行上的寶石原始的(這有重新編譯所有的原生擴展寶石的副作用):
rvm use ruby-1.9.3-p392
gem pristine --all
最後,進入到每一個項目,並執行以下操作:
bundle install
我不確定最後一步是否是絕對必要的 - 有些項目似乎沒問題,有些則沒有,但運行這似乎清理了最後剩下的問題。
當然有更簡化的方法來管理這個過程!我只用了兩個月的Mountain Lion和rvm,但在那段時間裏,兩次系統更新已經使我大部分工作的Ruby環境都無法正常工作。我安裝了很多Ruby版本,因爲我擔任顧問,遇到很多開發環境,所以我真的很想把這個過程放到一個容易重複的過程中。
有什麼想法?以上可以進一步改進嗎?
從IRC上的mpapis #rvm:如果您沒有對bundle使用--path或--deployment命令選項,那麼rvm全部重新安裝也將清除每個項目捆綁的gem的問題。 – 2013-03-08 16:43:06