ruby-build
ruby-build
は、UNIX系のシステム上で異なるバージョンのRubyをコンパイルしインストールするための、
rbenv install
コマンドを提供するrbenvのプラグインです。
rbenv
が無く、Rubyのバージョンのインストールを細かく制御する必要がある環境でも、
ruby-buildを使用することが可能です。
リリース一覧を確認し、 各バージョンの変更を確認して下さい。
インストール
rbenvプラグインとしてインストール(推奨)
rbenvプラグインとしてruby-buildをインストールすることで、rbenv install
コマンドが使用可能になります。
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
これは、~/.rbenv/plugins/ruby-build
ディレクトリ内に、ruby-buildの最新の開発版をインストールします。
このディレクトリから、特定のリリースタグをチェックアウトすることが出来ます。
ruby-buildを更新するには、最新の変更をダウンロードするためにgit pull
を実行します。
スタンドアローンのプラグラムとしてインストール(上級者向け)
スタンドアローンのプログラムとしてruby-buildをインストールすることで、
Rubyのバージョンのインストールを細かく制御することの出来るruby-buildコマンドが使用可能になります。
もし、rbenvがインストールされていれば、rbenv install
コマンドも使用可能になります。
git clone https://github.com/sstephenson/ruby-build.git
cd ruby-build
./install.sh
これは、/usr/local
へruby-buildをインストールします。
もし、/usr/local
への書き込み権限が無ければ、
代わりにsudo ./install.sh
を実行する必要があります。
PREFIX
環境変数を設定することで、異なる接頭辞でのインストールが可能です。
インストール後にruby-buildを更新するには、リポジトリをクローンした場所でgit pull
を実行し、
インストールスクリプトを再実行します。
Homebrewを使用したインストール(OS Xユーザー)
Mac OS Xユーザーは、Homebrewパッケージマネージャーを使用してruby-buildをインストールすることが可能です。
これにより、ruby-buildコマンドへのアクセスが可能になります。
もし、rbenvがインストールされていれば、rbenv install
コマンドも使用可能になります。
もし、Homebrewを使用してrbenvをインストールしているのであれば、 これがお勧めのインストール方法になります。
brew install ruby-build
また、もし最新の開発リリースをインストールしたいのであれば、次のように実行します。
brew install --HEAD ruby-build
使用方法
始める前にあなたのビルド環境が、 必要とするRubyのバージョンをコンパイルするための適切なシステム依存を持つことを確認する必要があります。 (推奨環境参照)
rbenvを使用したrbenv installの使用方法
rbenvを使用して各バージョンのRubyをインストールするには、
インストールしたい正確なバージョン名を付けて、rbenv install
を実行します。
例えば、下記のように実行します。
rbenv install 2.2.0
各バージョンのRubyは、~/.rbenv/versions
下のバージョンと同じ名前のディレクトリ内にインストールされます。
全ての利用可能なRubyのバージョンの一覧を確認するには、rbenv install --list
を実行します。
また、もしrbenvが適切な設定でインストールされていれば、完全なタブ付きのRubyバージョンを使用することも可能です。
ruby-buildスタンドアローンの使用方法
もしスタンドアローンのプログラムとしてruby-buildをインストールしているのであれば、
ruby-build
コマンドを使用して、特定の場所に各バージョンのRubyをコンパイルしてインストールすることが可能です。
インストールしたい正確なバージョン名とインストールしたいフルパスを付けて、
ruby-build
コマンドを実行して下さい。
例えば、下記のように指定します。
ruby-build 2.2.0 ~/local/ruby-2.2.0
利用可能なRubyの全バージョンの一覧を確認するには、ruby-build --definitions
を実行します。
インストール処理で何が行われているかを確認するために、
-v
または--verbose
フラグを第一引数として渡してください。
カスタム定義
rbenv install
とruby-build
のどちらも、
バージョン名の代わりとなるカスタム定義ファイルのパスを受け入れます。
カスタム定義は、ruby-buildで未だサポートされていないRubyのバージョンのインストールと開発を可能にしてくれます。
カスタム定義ファイルを作るにあたり、 ruby-build組み込み定義を確認してください。
特別な環境変数
ビルドの処理を制御するための、特別な環境変数を設定することが可能です。
環境変数 | 説明 |
---|---|
TMPDIR |
ruby-buildが一時的にファイルを格納する場所を設定します。 |
RUBY_BUILD_BUILD_PATH |
ソースをダウンロードしビルドを行う場所を設定します。
デフォルトでは、TMPDIR のサブディレクトリになります。
|
RUBY_BUILD_CACHE_PATH |
設定されいる場合、ダウンロードされたパッケージファイルをキャッシュするのに使用するディレクトリを指定します。 |
RUBY_BUILD_MIRROR_URL |
デフォルトのミラーURLのルートを、選んだものに上書きします。 |
RUBY_BUILD_SKIP_MIRROR |
設定されている場合、 ruby-buildにミラーを使用する代わりに、そららの元のソースのURL先からパッケージをダウンロードする事を強制します。 |
RUBY_BUILD_ROOT |
share/ruby-build/ 内で検索されるビルド定義から、デフォルトの場所を上書きします。(翻訳に自信なし)
|
RUBY_BUILD_DEFINITIONS |
ビルド定義を検索する際に、追加の検索場所を取得するコロン区切りのパスのリストを指定します。 |
CC |
Cコンパイラのパスを設定します。 |
RUBY_CFLAGS |
デフォルトのCFLAGSへ追加オプションを渡すことを可能にしてくれます。
例えば、-03 オプションを上書きするために使用します。
|
CONFIGURE_OPTS |
./configure へ追加のオプションを渡すことを可能にしてくれます。
|
MAKE |
make のために使用されるコマンドの上書きを可能にしてくれます。
特定のシステム上で、GNU make(gmake )を指定するのに便利です。
|
MAKE_OPTS (または MAKEOPTS ) |
make へ追加オプションを渡すことを可能にしてくれます。
|
MAKE_INSTALL_OPTS |
make install へ追加オプションを渡すことを可能にしてくれます。
|
RUBY_CONFIGURE_OPTS RUBY_MAKE_OPTS RUBY_MAKE_INSTALL_OPTS |
これらの変数は、Rubyにだけ渡されるものであり、 いずれのパッケージ(例: libyaml)に依存するものではありません。 |
コンパイル前のRubyへのパッチの適用
rbenv install
とruby-build
は、
--patch
(-p
)フラグをサポートします。
このフラグは、./configureとコンパイルの手順の前にRuby、JRuby、Rubiniusソースコードへ適用されるべき、
標準入力からのパッチを示します。
下記は、その使用例になります。
# 1つのパッチの適用
$ rbenv install --patch 1.9.3-p429 < /path/to/ruby.patch
# HTTP経由でのパッチの適用
$ rbenv install --patch 1.9.3-p429 < <(curl -sSL http://git.io/ruby.patch)
# 複数のパッチを適用
$ cat fix1.patch fix2.patch | rbenv install --patch 1.9.3-p429
チェックサム検証
もし、shasum
、openssl
、またはsha256sum
ツールがインストールされているのであれば、
ruby-build
はダウンロードされた各パッケージのインストール前に、
自動的にSHA2チェックサム検証を行います。
ミラーからのパッケージのダウンロード
ruby-build
は、最初にAmazonのCloudFront上にホストされたミラーから、
パッケージをダウンロードすることを試みます。
もし、ミラーのサーバーがダウンしている、またはそのダウンロードに不具合がある等の理由で、ミラー上でパッケージが利用出来なければ、
ruby-buildは定義ファイルに指定されている公式のURLにフォールバックします。
RUBY_BUILD_MIRROR_URL
環境変数を指定することで、ruby-build
に別のミラーを設定することが可能で、
これは例えば、あなた自身のローカルのミラーを実行したい場合に便利です。
パッケージミラーのURLはこの変数を加えることで、パッケージファイルのSHA2チェックサムと一緒に構築されます。
もし、SHA2プログラムがインストールされていなければ、ruby-buildはミラーからのダウンロードをスキップし、
代わりに公式のURLを使用します。
RUBY_BUILD_SKIP_MIRROR
環境変数を設定することで、
ミラーを経由することをruby-build
に強制させることが可能です。
公式のruby-build
のダウンロードミラーは、
37signals社をスポンサーをしています。
ダウンロードしたパッケージのキャッシュ
RUBY_BUILD_CACHE_PATH
環境変数を設定することで、ダウンロードしたパッケージファイルのローカルキャッシュを、
ruby-build
に保持するように指示することが可能です。
この設定を行い、最初のダウンロードが成功した後に、このディレクトリにパッケージファイルが保持されると、
その後のruby-build
とrbenv install
の実行はこれを再利用します。
rbenv install
コマンドは、デフォルトでこのパスを~/.rbenv/cache
にするため、
ほとんどのケースで単純にこのディレクトリをサウ製することで、ダウンロードのキャッシュを有効にすることが可能です。
インストール後にビルドディレクトリを保持
ruby-build
とrbenv install
のどちらも、
インストール後にダウンロードされたソースを保持するようにruby-buildに伝える-k
または--keep
フラグを受け入れます。
これは、Rubyと一緒にgdb
とmemprof
を使用する必要があるケースで便利かもしれません。
ソースコードは、rbenv install
コマンドで--keep
が使用された場合は、
~/.rbenv/sources
ディレクトリーツリーに並列に保持されます。
ruby-build
で--keep
を使用する場合は、
環境変数RUBY_BUILD_BUILD_PATH
を指定して、ソースコードの置き場所を指定する必要があります。
ヘルプ
一般的な問題の解決方法については、ruby-build wikiを参照して下さい。
もし、wiki上に回答が無ければ、 Issues trackerでイシューを作成して下さい。 その際には、ビルドに失敗した完全なビルドログを含めるようにして下さい。
ライセンス
(The MIT License)
Copyright (c) 2012-2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
© 2010 - 2017 STUDIO KINGDOM