[Ruby]debian上更新gem

用Rails的时候需要配环境,配环境的大头是安装gem,安装gem的时候就会遇到各种令人崩溃的问题…Orz…

环境是Debian,需要安装refinerycms,出现了gem版本过低的错误。
比较通用的做法是

$gem update --system

但是可能会遇到这个错误

ERROR:  While executing gem ... (RuntimeError)
    gem update --system is disabled on Debian. 
RubyGems can be updated using the official Debian
repositories by aptitude or apt-get.

这种情况下就需要自己动手。

这里需要安装的是gem 1.3.6的版本。

先得到rubygems-update-1.3.6.gem,可以直接下载得到

$wget http://gems.rubyforge.org/gems/rubygems-update-1.3.6.gem

然后安装这个叫作rubygems-update的gem

$sudo gem install rubygems-update-1.3.6.gem 

也可以

$sudo gem install rubygems-update -v=1.3.6

然后执行update_rubygems这个脚本
这个文件的位置由之前gem的设定而定。

$which update_rubygems 
/home/XXX/.gem/bin/update_rubygems

执行这个脚本update_rubygems

$sudo /home/haoxiang/.gem/bin/update_rubygems

如果遇到错误

/usr/local/lib/site_ruby/1.8/rubygems.rb:777:in `report_activate_error': Could not find RubyGem rubygems-update (>= 0) (Gem::LoadError)
	from /usr/local/lib/site_ruby/1.8/rubygems.rb:211:in `activate'
	from /usr/local/lib/site_ruby/1.8/rubygems.rb:1056:in `gem'
	from /home/haoxiang/.gem/bin/update_rubygems:18

可以试着先

$su

以root身份执行

$/home/haoxiang/.gem/bin/update_rubygems