2014-10-08 76 views
0

幾次搜索沒有找到更新基於RVM的ruby和gem的明顯方式,所以我掀起了以下腳本。希望獲得當前安裝的寶石列表,更新到新的紅寶石,將這些寶石向前拉,然後清理舊版本的所有內容。我在這裏發佈反饋意見,因爲我沒有看到一個簡單的測試方法,而且我幾乎無法勝任ruby,而對RVM幾乎毫無頭緒。用於更新基於RVM的ruby安裝和gems的腳本

#!/usr/bin/env ruby 

module RubyUpdate 
    def self.cmd(str, cmd) 
    puts str 
    retval = %x(#{cmd}) 
    throw(SystemCallError, cmd) unless $? == 0 
    return retval 
    end 

    def self.update 
    gems = self.cmd %Q(Getting list of installed gems...), %Q(gem list | cut -d ' ' -f 1) 
    self.cmd %Q(Updating ruby...), %Q(\\curl -L https://get.rvm.io | bash -s stable --ruby) 
    self.cmd %Q(Reloading...), %Q(rvm reload) 
    self.cmd %Q(Updating gems..), %Q(gem update #{gems.gsub("\n", " ")}) 
    self.cmd %Q(Cleaning up gems...), %Q(gem cleanup) 
    self.cmd %Q(Reloading...), %Q(rvm reload) 
    self.cmd %Q(Cleaning up ruby...), %Q(rvm cleanup all) 
    end 
end 

begin 
    RubyUpdate::update 
    puts "Update successful!" 
rescue SystemCallError => e 
    puts "Update failed!" 
    puts e 
end 
+1

我會脫鉤更新寶石和RVM。 rvm升級:http://rvm.io/rvm/upgrading和gem我會使用bundler和Gemfile與你在那裏運行的任何應用程序。 – phoet 2014-10-08 17:07:06

回答

1

你應該使用:

rvm get stable 
rvm upgrade current ruby 
+0

'rvm current'將會獲得當前的ruby版本。有沒有辦法讓最新的穩定版本可供下載? – 2014-10-14 21:39:42

+1

更新了一個修復程序;) – mpapis 2014-10-14 21:42:21

+0

非常感謝! – 2014-10-14 23:09:23