Ruby Install Guide::MacOS X

概要

MacOSX 10.2 以降では、ruby がはじめからインストールされてあります。しかし、ruby が最新バージョンであるとは限らないので、必要に応じて最新版をインストールするとよいでしょう。

インストール方法はおおまかには3通りあります。1.ソースをダウンロードして手動でコンパイルしてインストール 2.様々な依存関係を自動で解決してくれるツール(MacPorts*1, Fink)を使う(コンパイルできる環境が必要) 3.事情によりコンパイルができない場合、有志が既にコンパイルしておいてくれた「パッケージ」を使う

1番目のソースからインストールは、最も基本的なインストール方法です。古い OS X にも対応でき、様々な細かい設定が可能となりますが、その反面、手間と知識を要求される場合があります。とくに、rubyと様々なソフトウエア(例えばtkやimagemagickなど)を連携させて使用するためには、インストール時にオプションとして引数を与えるなど、それぞれ調整が必要となるかもしれません。2番目の自動インストールは、簡単かつ有効であり最もオススメですが、古い OS X への対応が不十分になりがちであるという欠点があります。OS X 最新バージョン向き。また、これは有志のボランティアによって管理されているものなので、担当者がたまたま多忙であるなどなどの理由により、ruby のバージョンの更新が遅れる可能性もあり得ます。3番目のパッケージを使う方法は、基本的にはクリックだけでインストールを行うことができ、導入が簡単で、コンパイルする環境が導入できなかった場合だけでなく、自称初心者や自称ナマケモノの助けにもなります。しかし、利用できる周辺の機能が限定されてしまう可能性があります。また、rubyのバージョンが古いままになっている場合もあります。

なお、インストールは、管理者権限のあるアカウントで作業してください。

コンパイルができる環境について

ソースからインストールするか、MacPorts, Fink などのツールを使う場合、コンパイルできる環境が必要で、OSX にXcodeか、または、それを含んでいる Developer Tools があらかじめインストールされてある必要があります。Xcode は OSX のインストールディスクに付属しています。DVD1枚目の中や、独立したCDの中などに、パッケージが含まれています。OSX10.2 の場合は、インストールCDの中には無いので、ダウロードします。Developer Connectionに [Join Now] ボタンより加入(無料/要メールアドレス) ⇒ ログイン ⇒ Downloads ⇒ Mac OS X ⇒ December 2002 Mac OS X Developer Tools ⇒ダウンロードしてインストール。OSX10.1 の場合は、April 2002 Mac OS X Developer Tools*2 が必要です。(参考:Installing Xcode for Mac OS X )

・ OS のソフトウエア・アップデートにて最新版に更新することをお忘れ無く。

・ OS のメジャーアップグレード(e.g. 10.5 ⇒ 10.6)をした後では、これらも Install DVD(CD) よりアップグレードしてください。

Xcode は、なるべく最新版をご利用ください。OSX インストールDVD が古くなると、バージョンが型遅れになり、うまく機能しない場合があります。最新版は、<URL:http://developer.apple.com/technology/xcode.html> より入手できます。

UNIXアプリ管理ツールの利用について

UNIXアプリケーション同士の様々な依存関係を解消しつつ自動でインストールをしてくれるツールとして、MacPortsFink が有名です。いろいろ便利ですが、インストールしようとしてるプログラムが、必ずしも最新のバージョンかどうかは、わかりません*3。また、お試しの際には、十分な時間の余裕を。

一般的に、これらを使ったインストールは、必ずしも雑誌やネット上の記事に書いてあるとおりにうまく行くとは限りません。もしも、エラーの発生で中断されることなく、目的とするアプリケーションまで辿りつけたのなら、メンテナンスをしているかたがたに心の中で感謝しましょう。

OS が古くなると、サポートされない要素が出てくるかもしれません。なるべく新しいバージョンのMacOS で使用することをお勧めします。

MacPortsを用いてインストールする場合 (Mac OS X 10.4 〜 )

MacOS が10.4以降の場合、UNIXアプリ管理ツールを使う方が便利かもしれません。ここではまず、MacPorts をインストールして、MacPorts を使って ruby をインストールします。なお、MacPorts では、ruby をインストールすると、以下も併せてインストールされます*4。文字コード変換ライブラリの libiconv、暗号化ライブラリの openssl、対話型プログラミングの入力を支援する readline、データ可逆圧縮の zlib。OS X 10.3の場合は、上記に加えて OS X 標準機能のうち古くて使えなくなった分が新しくインストールされます。

====== MacPorts のインストールと設定 ======

MacPorts をダウンロード:<URL:http://www.macports.org/install.php#pkg>の「Mac OS X Package (.pkg) Installer」に、the dmg for Snow Leopard, Leopard or Tiger ..とありますので、お使いのMacのバージョンにあったものをダウンロードします。又は、最新版をソースからコンパイルしてインストールすることもできます。

MacPorts をインストール:dmgファイルが開かれていなかったら、ダブルクリックでマウントし、パッケージ(茶色いハコのアイコン)をダブルクリックして指示に従います。

Terminal(アプリケーション ⇒ ユーティリティ ⇒ ターミナル)を開きます(Doc に入れてあると作業が楽です)。以後、Terminal への入力作業となります。

Terminalからの入力を簡単にするために、パスを設定します。まず、

echo $SHELL

と入力して、/bin/bash と表示されていることを確認します。もしも、そうではない場合は、Terminal に独自の設定がなされているので、ターミナル環境設定(command+,)でデフォルトに戻すか、その環境のルールに従ってパスを設定してください。次に、

echo $PATH

と入力して、パスを確認します。/usr/bin: よりも左側に /opt/local/bin: があれば、ここでのパスの設定は完了しています。なかった場合は、Terminal が起動するときに自動的に読み込まれるファイル ~/.bash_profile に、パスを追加するコマンドを書き込みます*5。下記2行を上から下まで改行も含めて同時にマークして、Terminalのウインドウの上へそのままドラッグ&ドロップし、enter を押してください。

echo 'export PATH=/opt/local/bin:/opt/local/sbin/:$PATH' >> ~/.bash_profile
echo 'export MANPATH=/opt/local/share/man:/opt/local/man:$MANPATH' >> ~/.bash_profile

これで、~/.bash_profile にパスの追加コマンドが書き込まれました*6 *7*8。次に、Terminal のウインドウをいったん閉じて開き直してください。なお、アカウントが複数ある場合、この方法での「パスの設定」は、それぞれのアカウントごとに個別に必要となります。まとめてやる場合は、/etc/profile を直接編集します。パスの設定は以上です。

MacPorts をアップデートします。すなわち、ネットワークに接続したままの状態で、下記コマンドを入力し、パスワードを入力し、しばらく待ちます。

sudo port -d selfupdate

そして、入力待ちの状態になったことを確認した後、下記コマンドにて、インストールできるソフトウェア一覧を更新します。パスワードの入力を求められたら入力します*9

sudo port -d sync

ここまでで、MacPorts の設置が完了しました。(selfupdate と sync は、定期的に行ってください。)↑

====== Ruby のインストールと管理 ======

インストールされる ruby のバージョンを事前に確認したい場合は、下記コマンドを入力します。@に続く数字を見ます。

port list ruby

同様に、MacPorts で扱っている ruby のライブラリについては、下記コマンドで、一覧できます。

port list rb-*

Rubyのインストールは、ネットワークに接続したままの状態で、下記のコマンドを入力し、パスワードを入力し、しばらく、そしてしばらく待ちます。*10

※ OSX10.3 の場合*11 (tkをご利用になりたい場合は、ソースからインストールしてください)

sudo port install ruby +darwin_7

※ OSX10.5 で、本体が PPC(インテルでは無い方)の場合

sudo port install ruby +darwin_9_powerpc +mactk

※ その他の場合(OSX10.2 以前ではおそらく使えません)

sudo port install ruby +thread_hooks +mactk

入力待ちの状態に復帰したことを確認して、Terminal のウインドウを別に立ち上げて、ruby がインストールされていることを確認します

ruby -v

これで、ruby のインストールは完了です。■

更新:MacPorts で新しいバージョンがリリースされて、更新の必要のあるものは、ネットワークに接続したままの状態で下記コマンドにて一覧できます。なお、1行目の実行後に、終わりから三行目あたりに「The MacPorts installation is not outdated and so was not updated」というメッセージがある場合は、2行目は不要です。

sudo port -d selfupdate
sudo port -d sync
port outdated

そのリストの中に、何かあった場合、ネットワークに接続したままの状態で下記コマンドにて新しいバージョンへと更新できます。

sudo port upgrade outdated

!この更新作業はなるべく定期的に行ってください。

参考:MacPorts コマンドの日本語での解説 ⇒ Man/1Port - MacPortsWiki-JP , はこべにっき# - MacPortsでステキなUNIXツールをインストール

パッケージからインストールする場合

コンパイルができない環境にあるか、または、UNIXコマンドにあまり触りたくない人は、Ruby 自体は最新ではありませんが、パッケージファイルからMacOS X標準のインストーラでインストールすることが出来ます。

パッケージからインストールする場合(Ruby1.8.6 ⇒ OSX 10.3,10.4 英語)

資源:Ruby One-Click Installer for OSX(英語)

パッケージからインストールする場合(Ruby1.8.2 ⇒ OSX 10.2,10.3 英語)

資源:Ruby stuff for Macs(英語)

概要:インストール先は /usr/local で、上書きはされません。Readline、Rubyを簡単にパワーアップする Rubygems、CGIの開発を助けるRails 関連などを含んでいます。*12

インストール手順:

1. Ruby 1.8.2 Stable for MacOS X 10.# *** (dmg) をダウンロードしてインストールします。インストールは、dmg ファイルを開けて、中の茶色いハコのアイコンをダブルクリックして、指示に従うだけです。gems や Rails 関連を使う場合は、インストールボタンを押す前に「カスタマイズ」をクリックして選択された状態にしてください。

2. Terminalからの入力を簡単にするために、パスを設定します。まず、Terminal(アプリケーション ⇒ ユーティリティ ⇒ ターミナル)をダブルクリックで起動。あとは、「ソースからインストールする場合」後半の「パスの設定」を参照してください。

以上です

パッケージからインストールする場合( Ruby 1.8.2 ⇒ Mac OS X 10.3 日本語)

資源:Ruby 1.8.2 バイナリパッケージ for Mac OS X 10.3 (Panther)

Ruby stuff for Macs とは違う内容です。日本人有志の手によりパッケージ化されたものです。.dmg ファイルをダブルクリックしてマウントされたディスクイメージの中の pkgファイルをダブルクリックすれば、インストーラが起動します。あとはインストーラの指示に従ってください。システムのRubyを上書きしないので、上書きしたい人は、インストーラで表示される説明をよく読んでください。

参照:[ruby-list:40616]

ソースからインストールする場合

UNIXアプリ管理ツールを使わない、または、UNIXアプリ管理ツールでのインストールができない場合は、ソースから自分でコンパイルしてインストールする必要があります。

====== 関連アプリケーションのインストール(参考) ======

これらが無くても、ruby は動作しますが、あらかじめ併せて入れておくと便利なものとして、文字コード変換ライブラリの libiconv、暗号化ライブラリの openssl、対話型プログラミングの入力を支援する readline、データ可逆圧縮の zlib などが挙げられます。これらは、MacPorts を用いてruby をインストールした際には、標準的に追加されるものです。また、OSX10.3 の場合は、GUI な ruby アプリケーションの作成を可能にする TclTkAquaBI(full Batteries-Included distribution)も入れておくとよいでしょう。これは、OSX10.4 以降ではデフォルトで実装されています。OSX10.2 以前ではうまく扱えないようです。

====== ruby 本体のインストール ======

要領は他のUNIX機とほぼ同じです。/Applications/Utilities/Terminal.app を起動(ファインダーを表示させて、アプリケーション ⇒ ユーティリティ ⇒ ターミナル ⇒ ターミナルをダブルクリック)して端末を開き、下記のように入力します。一行ずつ実行(書き込んでenterを押す)してください。enterを押したら次の入力待ちの状態になるまで触らないでください。

cd ~/Desktop
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p299.tar.gz
tar xfvz ruby-1.8.7-p299.tar.gz
cd ruby-1.8.7-p299
./configure --enable-shared --enable-pthread
make
make test
sudo make install
make clean

※ OSX 10.3 で、Tk を利用する場合は、バージョン 1.8.6-p36 にする。(参照⇒[ruby-list:42850], [ruby-list:42917]

cd ~/Desktop
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p36.tar.gz
tar xfvz ruby-1.8.6-p36.tar.gz
cd ruby-1.8.6-p36
./configure --enable-shared --enable-pthread --enable-tcltk-framework
make
make test
sudo make install
make clean

◆2行目:このコマンドはネットに接続された状態で実行してください。これはディスクトップにソースをダウンロードするだけなので、予めSafariなどのブラウザでディスクトップにダウンロードしておいても同じです。ブラウザでダウンロードした場合、自動展開されたフォルダーは削除してください。◆3行目:圧縮ファイルを展開します。ダブルクリックではなく、この方法を推奨します。◆5行目:./configure の後に様々なオプションを加えることができます。オプションはインストール作業とは別に「 ./configure --help 」で一覧することができます(見るだけ)。 ( 1.) インストールする場所の変更 => ruby がインストールされる先はデフォルトでは /usr/local 内ですが、これを例えば、/usr/test2 に変更したい場合は、--prefix=/usr/test2 をつけてください「 ./configure --prefix=/usr/test2 --enable-shared --enable-pthread 」。( 2.) irbの動作を改善するために、別途readlineをインストールした場合は、「--with-readline-dir=/usr/local」を追加してください(参照⇒[ruby-list:43982]*13「./configure --enable-shared --enable-pthread --with-readline-dir=/usr/local」。( 3.) OSX10.3 で、Tk を使う場合で、最新バージョンを使いたい場合は、tcl/tk をソースからコンパイルし、さらにrubyのソースファイルの一部を差し替える必要があります⇒[ruby-list:45143], [ruby-list:45150], [ruby-list:45146]。◆7行目:make test で「test succeeded」の表示が出なかった場合は失敗なので次に進まないでください。なお、稀に、「test succeeded」の表示が出ていても、失敗していることもあります。◆8行目:このコマンドの後でパスワードの入力を求められるので、入力してください。インストールが完了したら、ディスクトップ上のruby関連のファイルは削除しても大丈夫です。*14

====== パスの設定 ======

ruby がインストールされたことを確認します。

/usr/local/bin/ruby -v

これでインストールした ruby のバージョンが表示されるはずです。上書きの場合は、ここで完了。

次に、/usr/local/bin/ を省略できるように、パスを通す作業をします。TeX など、他 のUNIX アプリケーションを使っている場合は、既に設定されているかもしれません。試しに、

ruby -v

と、入力してみてください。これで先ほどインストールした新しいバージョンが表示されれば、作業は完了しています。古いバージョンが表示された場合は、Terminal より、下記のコマンドを入力してください。

⇒ OSX 10.3 〜 10.5 の場合(「ターミナル ⇒ 環境設定」でシェルに変更を加えた場合を除く)

echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bash_profile

⇒ OSX 10.2 の場合 (または Terminalに、「 echo $SHELL 」と入力すると、/bin/tcsh と出力される場合)

echo 'set path = ( /usr/local/bin $path )' >> ~/.tcshrc

これらの設定は、次に新しく開いた Terminal のウインドウから有効になります。

なお、アカウントが複数ある場合、この「パスを通す」作業は、それぞれのアカウントでやらなければなりません。まとめて設定するには、管理者が、/etc/profile を直接編集してしまう方法もあります(上級者向け)。

Tips: コマンドは、この画面から Terminal 上に直接貼り付けることができます。必要な部分をマークして、Terminal のウインドウ上に、マークした部分をドラッグ&ドロップ。コピーされた改行は enter として働きます。改行のコピーをさけるには右から左へ向かってマークしてください。ここでは複数行を同時にマークしないでください。

参考までに、こちらも参照してください ⇒Ruby Install Guide::UNIX全般 <補足>

なお、古いバージョンの ruby 1.6.5 をインストールする場合は、そのままではmakeに失敗します。[ruby-list:32255]を参考にしてパッチをあててください。

注意

・拡張子:念のため、[ ファインダー⇒環境設定⇒詳細 ] にて、拡張子を表示させる設定にして作業を進めてください。

・先祖帰り:ソースからのインストールで、./configure のオプションに「--prefix=/usr」をつけて上書きインストールしてある場合、MacOS X のソフトウエア・アップデート(とくに、セキュリティアップデート)の後で、新しくしてあったヴァージョンがもとの古いのに戻ってしまうことがあります。ソフトウエア・アップデートを行ったら必ず Terminal にて、

ruby -v

と入力し、ruby のヴァージョンが意図したものになっているかどうか確認してください。

・CGI 作成:「パスの設定」はターミナルから ruby を操作するために行った設定で、Macをサーバーとして公開するウェブページの CGI に対しては無効です。すなわち、CGI 冒頭の書き出しは、ruby をインストールした先によって、以下の3通りがあることになります。

#!/opt/local/bin/ruby
#!/usr/local/bin/ruby
#!/usr/bin/ruby

上から順に、MacPortsの場合、ソースからで上書きなしか又は「Ruby stuff for Macs」の場合、ソースからで上書きをした場合です。とくに、MacPorts の場合は注意してください。簡単な CGI を作成して、定数「 RUBY_VERSION 」を出力させてみると確認できます。

・getcontext との相性について:MacOS X 10.5.5, ruby-1.8.7-p160, getcontext の組み合わせで動作が遅くなることが報告されています。今後改善されるものと考えられます。⇒[ruby-list:45598]

関連情報

・Ruby をダブルクリックで実行:通常 Mac では ruby を Terminal から実行しますが、Launcher を使ってダブルクリックで実行できるようにすることもできます(OSX 10.2以降)。<URL:http://www.maths.mq.edu.au/~steffen/tcltk/Launcher/>より、Launcher をダウンロードして、/Applications/Utilities/にインストールします。使い方の詳細は、上記サイトの説明をご覧ください。つまり、ruby スクリプトの冒頭に #!ruby を書き入れるかまたは、設定ファイル Info.plist を編集して、拡張子 .rb でも実行される様にしておきます。拡張子.pl の処理<dict>〜<string>pl</string>〜<string>perl</string></dict>のところの記述を参考にするとわかりやすいかもしれません。pl を rb に、perl を ruby に書き直したものを、追加して挟み込みます。Terminal から、emacs を用いて

sudo emacs /Applications/Utilities/Launcher.app/Contents/Info.plist

にて、編集できます。(emacs苦手な人へ:マウスなどではスクロールできないので、矢印キーを使って移動してください。perlの記述の部分をTerminal上のemacsからマウスなど使って普通にコピーして、他のエディタにてruby用に書き直して、それをコピーしてTerminal上のemacsに普通に貼付ける。貼付ける場所に予め矢印キーでカーソルを移動しておいてください。保存して終了は、controlキーを押したまま順番にxsxcと押します。)

あとは、該当するファイルを Launcher に関連づけしておきます。すなわち、情報を見る(選択して command+i ) ⇒ このアプリケーションで開く ⇒ Launcher を選択

なお、Launcher は、TclTkAquaBI(full Batteries-Included distribution) をインストールした際にも、一緒にインストールされます。

・Tcl/tk を使う: OSX10.4 では、Tcl/tk がサポートされていますが、OSX10.3 では使えません。インストールには、次の記事を参照願います。⇒[ruby-list:42850] *15, [ruby-list:42917], [ruby-list:45143], [ruby-list:45150], [ruby-list:45146] 要するに、ソースからインストールする際の configure に、下記2つの*16 オプションが必要です。

./configure --enable-pthread --enable-tcltk-framework

irb を使うときに威力を発揮する入力支援ツール Readline : emacsのようなショートカット機能が備わるようです。MacPorts で ruby をインストールした場合は、標準で付いてきます。関連記事:[ruby-list:41101],[ruby-list:42917]

・テキストエディター:効率よくプログラムを書くために、Mac 定番のテキストエディター mi と、その上で ruby を編集するための rubyモード。見やすくて充実した色分けや、def や class などの先頭にジャンプする機能などが備わっています。なお、miほどには多機能ではありませんが、KEdit for MacOS X も ruby の色分けとジャンプ機能をサポートしています。

Ruby Install Guide::この項目のメンテナ

sk( =at= )ec.hokudai.ac.jp (S.Konno) (Last updated: 05 Jly.2008)


*1 昔は DarwinPorts と呼ばれていました。
*2 所在不明。情報求む。
*3 バージョンはインストール前に確認できます
*4 2006年10月現在
*5 Terminal のウインドウが現れるときに自動的に読み込まれるファイルは、~/.bashrc です。しかし、話を簡単にするために、~/.bash_profile としました。このファイルは一般的にはログイン時に実行されるのですが、MacOSXの場合、ターミナルを起動したときに実行されるようです。さらにMacOSXの場合、~/.bashrc を使うと、同じ設定が2度読み込まれて、パスの設定が2重になるようです。
*6 コマンド 「 echo 'hello' >> world 」で、ファイル world の中に hello と書かれた行を追記します
*7 コマンド「 open -e ~/.bash_profile 」で設定ファイルの中身を確認できます。ファイルが存在しない場合は、「No such file」と返されます。
*8 ファイル名がピリオドで始まるファイルは、ファインダーで表示されません。テキストエディター mi では、「メニュー⇒ファイル⇒不可視ファイルを開く」で開いて内容を編集することができます。
*9 selfupdateに時間がかかることがあるので、 sudo port -d selfupdate && sudo port -d sync のようにまとめてしまうことは避けたほうが無難
*10 +darwin +mactk は追加機能です。その種類は、コマンド port variants ruby にて確認できます。たまに増えていることがあるので注意が必要です。新しい追加機能を入れてrubyを入れ直した場合は、古いほうと干渉するので、コマンド port installed にて状況を確認した後、deactivateを使って古いほうを停止し、activateを使って新しいほうを有効にしてください。コマンド例:sudo port deactivate ruby @1.8.6_0;sudo port activate ruby @1.8.6_0+mactk+thread_hooks
*11 see. [ruby-list:45629]
*12 ウェブページに書いてあるリストの、鬼車や、TclTk などは含まれていません。(19 Oct.2006)
*13 実はこのオプションは不要かもしれません(参照⇒[ruby-list:43986]
*14 フォルダーの中には、様々な説明の書かれた文書も同胞されているので、削除せずにとっておいて、ときどき中身を探索してみるのも良いでしょう。
*15 OSX 10.2 でも試してみましたが、Tkのウインドウは出るものの、正常には動作しませんでした。
*16 --enable-shared は無くても動作するようです。



The RWiki