Ubuntu/DebianでRubyGemsをアップデートしたら格納場所が変わってギャーッとなる人へ

通常Debian/UbuntuRubyGemsでは、RubyGemsの環境は(gem environment)以下のようになっていると思いますが、

  • INSTALLATION DIRECTORY: /var/lib/gems/1.8
  • EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin

gem update --system や rubygems_update などを使ってRubyGems本体をアップデートすると、パスが書き換わってしまいます。

そこで、Debina/Ubuntu流に戻す方法を書きます。

詳しくは、RubyGemsパッケージをダウンロードして、その中のパッチ(debian/patches/01_default_gem_path.dpatch)をみてもらいたいんですが、簡単に。

/usr/lib/ruby/1.8/rubygems/defaults.rb の以下のメソッドを書き換えましょう。

  def self.default_dir
    File.join('/', 'var', 'lib', 'gems', ConfigMap[:ruby_version])
  end

あと、これも、

  def self.default_bindir
    File.join('/', 'var', 'lib', 'gems', ConfigMap[:ruby_version], 'bin')
  end

という風な感じで。


それでは、ハッピーUbuntu/Debianライフを!