ubuntuでsudoを付けずにgem updateしたパッケージのインストールディレクトリを元に戻す

うっかりsudoを付けずにgem updateを実行したところ、アクセス権がなかったから~/.gem/にインストールしたよみたいなメッセージが出てきた。元々/var/lib/gem/配下にあったのでこれを戻してみる。

まず gem list -d を実行してインストールされたパスを確認。sinatra-1.0が/home/mikage/.gem/ruby/1.8にインストールされている。

$ gem list -d
...
sinatra (1.0, 0.9.4)
    Authors: Blake Mizerany, Ryan Tomayko, Simon Rozet
    Rubyforge: http://rubyforge.org/projects/sinatra
    Homepage: http://sinatra.rubyforge.org
    Installed at (1.0): /home/mikage/.gem/ruby/1.8
                 (0.9.4): /var/lib/gems/1.8

    Classy web-development dressed in a DSL
...


続いてパッケージを指定してアンインストール。どのバージョンをアンインストールするか聞いてくるので、アンインストールしたいバージョンを選択する。(ここではsinatra-1.0)

$ gem uninstall sinatra

Select gem to uninstall:
 1. sinatra-0.9.4
 2. sinatra-1.0
 3. All versions
> 2
Successfully uninstalled sinatra-1.0


sudo を付けて gem update を実行。

$ sudo gem update sinatra
Updating installed gems
Updating sinatra
Successfully installed sinatra-1.0
Gems updated: sinatra
Installing ri documentation for sinatra-1.0...
Installing RDoc documentation for sinatra-1.0...


これで/var/lib/gems/配下にインストールされる。

...
sinatra (1.0, 0.9.4)
    Authors: Blake Mizerany, Ryan Tomayko, Simon Rozet
    Rubyforge: http://rubyforge.org/projects/sinatra
    Homepage: http://sinatra.rubyforge.org
    Installed at (1.0): /var/lib/gems/1.8
                 (0.9.4): /var/lib/gems/1.8

    Classy web-development dressed in a DSL
...