幾次搜索沒有找到更新基於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
我會脫鉤更新寶石和RVM。 rvm升級:http://rvm.io/rvm/upgrading和gem我會使用bundler和Gemfile與你在那裏運行的任何應用程序。 – phoet 2014-10-08 17:07:06