Linuxでは、yumやaptといったパッケージ管理ソフトを使うことでRubyのインストールとアンインストールを簡単にできます。しかしソースコードから作ったRubyをアンインストール場合、パッケージ管理ソフトを使うよに簡単にはできません。
今回は、LinuxなどでソースコードからインストールしたRubyをンインストールする方法を紹介します。
ソースコードからインストールする方法
Linuxの標準コマンドの多くはオープンソースのコマンドでソースリストが公開されています。そのためソースコードをコンパイルし、インストールすることが可能です。Rubyもそうしたコマンドと同じようにソースコードからインストールできます。
では、このようにインストールしたコマンドをアンインストールするにはどうすれば良いでしょうか。Rubyのアンインストール方法を紹介する前に、ソースリストからインストールしたコマンドをアンインストールする方法を紹介します。
インストール先はコンパイル時に指定する
ソースコードからコンパイルしてインストールする場合、makeコマンドを使用するため、最初にmakeコマンドを制御するためのMakefileを作成します。そして、多くの場合、Makefileを作成するために実行するスクリプトがconfigureです。
configureを実行することで、インストールされている各種ライブラリなどをチェックし、それに合わせてMakefileを作成します。
なおソースコードからコンパイルしてインストールする場合、どこにインストールするかを設定できます。configureスクリプトを実行する際、オプションなどでインストールするディレクトリを指定してください。そして、省略した場合はデフォルトの「/usr/local」の下にインストールされます。
makeでアンインストールする
先ほどインストールするディレクトリをMakefileを作成する際に設定する方法を紹介しました。これにより、makeコマンドでインストールできます。例えば、次のように使います。
ソースコードからコンパイルしてインストールする例
# confugure # make # make install
これはconfigureスクリプトによって作られたMakefileに、コンパイル済のコマンドをインストールする命令が組み込まれており、上記の「make install」でそれを実行しています。
もしMakefileにコマンドをアンインストールする命令が書かれていれば、makeコマンドでアンインストールすることが可能です。
makeコマンドでアンインストールする例
# make uninstall
デフォルトのインストール先
先ほど紹介したconfigureスクリプトでインストール先を指定しない場合、ソースコードからコンパイルしたコマンドはデフォルトのインストールディレクトリにインストールされます。そして、そのデフォルトのディレクトリが「/usr/local」です。
ソースコードからコンパイルしたRubyをインストールした場合も、Rubyの実行ファイルや標準ライブラリなどが「/usr/local」の下にコピーされます。そしてアンインストールする場合、/usr/local」の下からRuby関係のファイルを削除するコマンドを実行しなければなりません。
Rubyのソースコードからインストールする方法
先ほどLinuxのコマンドをソースコードからコンパイルしてインストールする方法を紹介しましたが、Rubyをソースコードからコンパイルする方法も基本的に同じです。次にRubyをソースコードからインストールする方法について紹介します。
Rubyのコンパイル手順
Rubyの公式サイトには、各種OSにインストールする方法と同じWebページで、ソースコードへのリンクを用意しています。Linuxなどでソースコードからコンパイルして使いたい場合は、ここからダウンロードしてください。
ダウンロード|ここでは、Rubyインタプリタの代表的な入手方法を説明します。
ダウンロードしたソースコードを展開すると、docディレクトリの下にあるcontributing.rdocにコンパイル手順が書かれています。この手順通りに実行することで、Rubyの実行モジュールをコンパイルし、ライブラリといっしょにインストールすることが可能です。
Rubyのコンパイル手順の例
$ cd (Rubyのソースコードを展開したディレクトリ) $ autoconf $ mkdir build && cd build $ mkdir ~/.rubies $ ../configure $ make $ sudo make install
makeコマンドではアンインストールできない
先ほどRubyのコンパイル手順を紹介しましたが、その中のconfigureスクリプトの実行によりMakefileが作られます。そしてMakefileには、Rubyをコンパイルする処理とインストールする手順が記述されており、「make install」でインストールできます。
オープンソースでソースコードが公開されているコマンドの中には、Makefileにアンインストールする機能が組み込まれており、「make uninstall」でアンインストールできるものもあります。しかし、RubyのMakefieにはアンインストールする手順が記述されていません。そのため、別の方法でアンインストールします。
Rubyをアンインストールするには
ソースコードからコンパイルしてインストールしたRubyをアンインストールするには、「make install」を実行した際のログファイルを利用します。
具体的には「make install」を実行したディレクトリに「.installed.list」というファイルが作られます。このファイルには、Rubyをインストールした際に/usr/localなどのインストールディレクトにコピーされたファイルが記述されています。このファイルを用いてインストールされたファイルを削除してください。
Rubyをアンインストールする方法
先ほど紹介した「.installed.list」を用いててアンインストールするには、Linuxのリストを読み込んでコマンドを作成し、それを実行するxargsコマンドを利用します。
xargsコマンドの書式
xargs [オプション] コマンド [コマンドの引数]
なおxargsは、標準入力からリストを読み込みことが可能のため、通常はcatコマンドでリストを読み込み、パイプを使ってxargsに送り込むことで、リストからコマンドを作成し、それを実行できます。
Rubyをアンインストールするには、catコマンドで.installed.listを読み込み、xargsでrmコマンドを指定してください。
.installed.listを使ってRubyをアンインストールする例
# cat .installed.list | xargs rm
最新版のRubyを使うならrbenvで
これまでソースコードからインストールしたRubyをアンインストールする手順を紹介しましたが、この方法はビルドに使った環境を全て残してあるのが前提です。この環境を削除してしまうとアンインストールできません。
Rubyのバージョンを切り替えて使うならrbenvコマンドを利用してください。rbenvは複数のRubyを切り替えて使用できるRuby専用のパッケージ管理ツールです。GitHubから指定したバージョンのRubyをインストールできます。またrbenvコマンドなら不要なバージョンのアンインストールも可能です。
もしLinuxでRubyを使うならrbenvコマンドを利用してください。
rbenvでRubyをインストールする例
$ rbenv install 3.0.2 $ rbenv global 3.0.2
rbenvでRubyをアンインストールする例
$ rbenv uninstall 3.0.2
まとめ
今回はソースコードからコンパイルしてインストールしたRubyをアンインストールする方法として、xargsコマンドを使う方法を紹介しました。しかしこの方法はインストールに使用したディレクトリを残しておかないと利用できません。
そのため開発環境や本番環境で特定のバージョンのRubyを使う場合は、Ruby用のパッケージ管理ツールrbenvの利用をおすすめします。もし、知らないでソースコードからインストールしてしまったのなら、今回紹介した手順でアンインストールし、パッケージ管理ツールのrbenvの利用に切り替えてください。