「清水美樹の本」の目次へ戻る

このトピックの最初に戻る
  前に戻る
次へ進む

UbuntuでRals3.2.3 (3) ビックリ、Rubyのインストール

Rubyも「apt-get」コマンドでUbuntu専用のパッケージをインストールできるのですが、Ruby on Railsとは相性が悪いことが結構あるのです。そんなときは、Rubyを「ソースからコンパイル」してしまいます。それができるのが、Linuxのすごいところ。

Rubyのソースコードをダウンロード

「ナニナニLinux」のRubyは「壊れているよ」

 「Rubyをインストール」というときの「Ruby」とは、「Ruby言語で書いたプログラムを作成したり実行できるようにするアプリケーション」のことです。ですから、Ruby on Railsを使うには、まず「Rubyをインストール」する必要があります。
 「Ruby」は有名なプログラミング言語ですから、Ubuntuにも「専用パッケージ」があります。「sudo apt-get install ruby」で簡単にインストールできるはずですが、実はこうした専用パッケージだと、Ruby on Railsが動かない場合がときどきあるのです。理由は、そのパッケージが採用した「Rubyのバージョン」かも知れませんし、そこは謎というか、もう運の問題と言ってしまってもしかたないと思います。
 Linuxのユーザーフォーラムなどで、「『ナニナニLinux』でRailsが動かない」「『ナニナニLinux』のRubyは壊れているよ」というやりとりは、わりとよく見られます。そういうときは、Rubyを、開発元が提供しているソースコードからコンパイルしてしまうのが、最も期待できる解決策です。これもRailsとの「相性」でダメだったら、もうあきらめるしかありませんが・・・

ということで、今回は、最初から「Ubuntu専用のRubyは、インストールしない」という方針でやります。どちらもインストールしてしまうと、どちらのRubyを使うか、システムが混乱する恐れがあるからです。ソースコードからのコンパイルのみで行きます。

コンパイル環境は整っているか

 「ソースコード」とは、開発元が書いたプログラムのファイルで、テキスト・エディタで読めるものです。コンパイル」とはそれを「機械語」に直して、動作する「アプリケーション」にする作業です。それには、いろいろとソフトウェアが必要です。これを「コンパイル環境」と称します。
 「Ubuntu Desktop」には、インストールしたときからコンパイル環境が整っています。確かめてみましょう。
端末ウィンドウを起動します。「sudo」は要りません。ただ、「make」とだけ打ってみてください。これは、のちにキチンと設定を整えてから、実行例10で行うコマンドです。
図41のように、「中止」というエラーメッセージが出れば、コンパイル環境が整っていることはほぼ確実です。そうでなければ、「そんなコマンドは知りません」というエラーになるはずです。「中止」ということは、「いちおう、コンパイルしてみようとした」ということです。
図41「コンパイルしてみようとしたら、設定ができていなかったので中止」というエラー。ここでの目的は果たされた

「Firefox」でダウンロードする

 では、Rubyの開発元のWebサイトに行って、ソースコードをもらってきましょう。
 Webサイトに行くには、Firefoxを使用します。ランチャーにアイコンがあります。
図42 「Firefox」のアイコン
ブラウザで、以下のURLの「Ruby公式ページ」にアクセスします。

http://www.ruby-lang.org

 もしかすると、「英語のページ」に連れて行かれるかも知れませんが、困ることはないでしょう。右側にある「Download」というボタンをクリックするのは日本語ページでも英語ページでも同じです。
図43 「Ruby」の公式Webサイト。とにかく「Download」をクリック
 ダウンロードページが英語の場合は、少し下にスクロールして「Compiling Ruby - Source code」と書いてある部分を見つけます。そこにある一番上のリンク、たとえば「Ruby1.9.3-p194」のように書いてあるのをクリックします。なお、図44及び図45でリンクがボカしてあるのは、このページで間違ってこの「絵」の中のリンクをクリックしてしまい「あれ、移動しない。なんだ絵じゃないか」と悔しい思いをする方がおられないようにと思っての処理です。
図44 Rubyのソースコードのダウンロード(英語ページ)
日本語の場合は、ページの一番上にあり、わかりやすいと思います。「tar.bz2」「tar.gz」「zip」形式のどれを選んでも、処理できます。
図44 Rubyのソースコードのダウンロード(日本語ページ)
Firefox が、このファイルをどうするか聞いてきます。一度「保存」を選ぶことをおすすめします。このまま「自動展開」されてしまうと、どこで何が起こっているかわからないからです。
図46 まずは、保存してもらう
ダウンロードはすぐ終わるでしょう。Firefoxのダウンロードマネージャが開いて、すぐにダウンロードしたファイル名が表示されるはずです。それを右クリックして「保存フォルダ」を選びます。
図47 Firefoxのダウンロードマネージャに表示された、ダウンロード済みファイル
図48 右クリックで、「保存フォルダを開く」
ファイルブラウザが開いて「ダウンロード」というフォルダの中身を表示します。Firefoxの初期設定では、ダウンロードしたファイルはそこに置かれる決まりです。
図49 「ダウンロード」フォルダに置かれていた


Rubyの「ソースフォルダ」を得る

ファイルブラウザをもうひとつ開く

ダウンロードしたファイルを、別の場所に持って行って処理しましょう。それには、別のウィンドウでホームフォルダを開きます。それには、ファイルブラウザの左側のフォルダ一覧から、「ホーム」を選んで右クリックし、「新しいウィンドウの中に開く」を選びます。
図50 新しくファイルブラウザのウィンドウを開く

ファイルブラウザ上でファイルを移動する

ホームフォルダ中に「source」などのフォルダを作成して、「ダウンロード」フォルダからそこに、ダウンロードしたRubyのソースファイル(を圧縮したもの)をドラッグドロップで移動します。
図51 ホームフォルダに「source」フォルダを作って、そこに移動する

圧縮ファイルを展開する

圧縮ファイルを展開します。それには、ファイルのアイコンを右クリックして、メニューから「ここに展開」を選びます。
図52 「ここに展開」を選ぶ
図53 フォルダが得られた
このフォルダを開いてみましょう。Rubyのソースコード、それをコンパイルするために必要なたくさんのフォルダやファイルが納められています。このようなフォルダを「ソースフォルダ」と呼ぶことが多いようです。
図54 Rubyのソースフォルダ


ソースコードをコンパイル

 

威力を発揮するnautilus-open-terminal

では、コマンドを用いてこのソースフォルダの中のソースコードをコンパイルしましょう。
それには図54のウィンドウを右クリックして、「端末の中に開く」を選びます。前のページで「nautilus-open-terminal」をインストールしているからこそ、これはできます。 
図55 Rubyのソースフォルダから「端末の中に開く」
端末ウィンドウが起動します。プロンプトに、今いる場所がたとえば「~/source/ruby-1.9.3-p194」のように表示されているでしょう。

「./configure」- このフォルダの「configure」ファイルを示す

Unix系でソースコードをコンパイルする手順は決まっています。まず、実行例9-Aのように打つと、用いているOS の環境が解析され、コンパイルのための諸設定が自動でなされます。このコマンドは、自分のホームフォルダ内での作業なので、一般ユーザで行います。
実行例9-A コンパイル手順その1「./configure」
./configure
上の実行例9-Aでは、「./」という記号に注意してください。これは「.」という「今いるフォルダ」を表す記号に、「/」という区切り記号をつけたものです。「このフォルダにあるconfigureというファイルの内容を実行しなさい」という意味です。Unix系のコンパイルの決まりに従うプログラムのソースフォルダには、全て「configure」があります。ですから、他のファイルと混同しないようにつけているのです。

「./configure」使用上のちょっとした反則技:インストールの場所を指定する

ただし、ちょっと待ってください。このままでは、Rubyは「/usr/local」というフォルダにインストールされる決まりになっています。これはUnix系でソースコードをコンパイルするときの、「ルール」というか「マナー」です。
しかし、「apt-get」コマンドでインストールするUbuntuのアプリケーションは、みな「/usr」フォルダにインストールされます。
このあと最終的な目的である「Ruby on Rails」には、依存するアプリケーションが非常に多く、ちょっとでも探せないものがあるともう正常動作に失敗します。Rubyは「/usr/local」にあるが他のアプリケーションは「/usr」にある、となると、他方の場所にあるファイルを探すのに失敗することがあるのです。
これを調整する方法はあるのですが、難しいので、マナー違反ではありますが以下の方法を許してもらいましょう:Rubyのインストールされる場所を「/usr」に指定します。それには、「./configure」のコマンドに、インストール場所の「オプション」をつけて、実行例9-Bのようにします。
実行例9-B 「./configure」にインストール場所のオプションをつける
./configure --prefix=/usr
「prefix」の前に「-」が二つついているのに注意しましょう。「prefix」とは、「前につける語」という意味です。たとえば初期設定は「/usr/local/bin/ruby」ですがそれを「/usr/bin/ruby」にする、ということで、前につける語を「/usr/local」から「/usr」に変えるという意味があります。
もう実行例9-A をやってしまった、という方も大丈夫。実行例9-Bをやり直せばいいだけです。 実行すると、作業の様子が次々と出力されます。結構時間がかかるでしょう。
図56 実行例9-Bを打って作業が開始

「make」- このOSに共通のコマンドを実行

 作業が終わって再び入力できるようになったら、実行例10を打ちます。これも、一般ユーザで行います。
実行例10 コンパイル手順その2「make」
make
上の実行例10では、「./」がついていません。「make」は、「make」というアプリケーションによるコマンドで、このOSに共通のものです。得られた設定に従って、ソースコードをコンパイルします。
図57 実行例9の作業が終わったあと、続けて実行例10を打って改行直前の状態
図57で改行すると、今度はもっと時間がかかるでしょう。

「make install」- 共通のフォルダにファイルをコピーする

作業が終わって再び入力できるようになったら、今度は「sudo」をつけてコマンドを実行します。実行例11です。
実行例11 コンパイル手順その3 「sudo」をつけて「make install」
sudo make install
 上の実行例10によって、ユーザーフォルダ中のこのソースフォルダに、アプリケーションのための諸ファイルができました。それらを、ユーザーが共通で使える場所にコピーします。自分のホームフォルダ以外の場所にファイルをコピーするには、管理者権限が必要なので「sudo」を使うのです。
図58 実行例10の作業が終わったあと、続けて実行例11を打って改行直前の状態
図58で改行すると、今度はそれほど時間がかからないでしょう。ファイルが「/usr」フォルダの下に(サブフォルダも含め)インストールされていくのを確認できましたでしょうか。
再び入力できるようになったらインストール成功です。
図59 再び「プロンプト」が現れて、インストール成功

Rubyの場所を確認しよう

 本当にインストールされたかどうか確認してみましょう。Rubyプログラムを実行するコマンド「ruby」に相当する実行ファイルが、システムのどのフォルダにあるかを探すには、実行例12のようにします。一般ユーザーで構いません。
実行例12 「ruby」という実行ファイルは「どれですか」
which ruby
実行例13のような応答が得られるでしょう。
実行例13 ここにあるこのファイルです
/usr/bin/ruby
図60 実行例12及び実行例13の実際の様子

Rubyの用意が整いました。ソース・コードからのコンパイルは、LinuxなどUnix系ならではのワザですね。では、次のページで、Ruby on Railsのインストール・・・と行きたいところですが、実はこれから、難関に行き当たります。
前に戻る
次へ進む
このトピックの最初に戻る
  このサイトの目次へ戻る