rubyをソースからインストール→アンインストール
勉強のためにapt-getではなくソースからrubyをインストールしようと試みた。
% wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6-p114.tar.gz % tar -xvzf ruby-1.8.6-*.tar.gz % cd ruby-1.8.6-* % ./configure % make % su # make install # exit % make clean
これでrubyが/usr/local/bin以下にインストールされた。続いてrubygemsのインストールも同じようにソースから。んで、取り合えずgem install rakeしようと思ったらエラーが…。
$ gem install rake /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- zlib (LoadError) from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/package.rb:10 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/format.rb:9 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/installer.rb:11 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/dependency_installer.rb:3 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/commands/install_command.rb:4 from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:140:in `load_and_instantiate' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:65:in `[]' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:118:in `find_command' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:104:in `process_args' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/command_manager.rb:75:in `run' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/gem_runner.rb:39:in `run' from /usr/local/bin/gem:24
zlibが入ってないからだなぁとかいろいろ試したんだがどうにも復旧せず、諦めてapt-getでrubyとrubygemをインストールすることにした。
その後、同じようにgem install rakeとすると同じエラーが…(汗 どうやら/usr/local/binの方を優先して読みにいっているようです。
$ which -a ruby /usr/local/bin/ruby /usr/bin/ruby $ which -a gem /usr/local/bin/gem /usr/bin/gem $ set | grep ^PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
ふむふむ。
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
の順番なのね。これを入れ替えるのはまずそうだし、フルパス打てばいいんだけど面倒なので/usr/local/bin以下のrubyをアンインストールすることにする。
調べてみた。
調査の結果、ソースからインストールしたアプリをアンインストールするのは面倒な作業だということが分かりました。
- ITmedia エンタープライズ : Linux Tips「ソースコンパイルでインストールしたプログラムを削除したい」
- http://www.geocities.jp/abcmja/basic_usage.html
make unintallが使えない=ほとんどの場合は、Makefileの中身を見るorログを確認してインストールしたファイルを手動で消去する。あるいはこういうツールを使うのでもいいらしい。
make uninstallってほとんどないですよね。だからCheckInstall - devworks
CheckInstall Homepage
あ、けどこれCheckInstallで導入したやつしかアンインストールできないんだよね(汗 もう面倒なので/usr/local/bin以下のファイル全消去することにします。
$ ls -al 合計 2044 drwxr-xr-x 2 root root 4096 2008-11-27 01:45 . drwxr-xr-x 10 root root 4096 2008-10-30 07:53 .. -rwxr-xr-x 1 root root 3882 2008-11-27 01:36 erb -rwxr-xr-x 1 root root 788 2008-11-27 01:45 gem -rwxr-xr-x 1 root root 379 2008-11-27 01:36 irb -rwxr-xr-x 1 root root 1543 2008-11-27 01:36 rdoc -rwxr-xr-x 1 root root 1491 2008-11-27 01:36 ri -rwxr-xr-x 1 root root 2055069 2008-11-27 01:36 ruby -rwxr-xr-x 1 root root 153 2008-11-27 01:36 testrb $ sudo rm -rf * $ ls -al 合計 8 drwxr-xr-x 2 root root 4096 2008-11-29 18:57 . drwxr-xr-x 10 root root 4096 2008-10-30 07:53 ..
きれいさっぱりw