一些搜索没有显示出更新基于RVM的ruby和gem的明显方法,所以我掀起了以下脚本。希望获得当前安装的宝石列表,更新到新的红宝石,向前拉出这些宝石,然后清除所有东西的旧版本。我在这里发布了反馈意见,因为我没有看到一种简单的方法来测试它,而且我几乎不能胜任ruby而且对RVM一无所知。
#!/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
答案 0 :(得分:1)
你应该使用:
rvm get stable
rvm upgrade current ruby