LoginSignup
1
1

More than 1 year has passed since last update.

【Ruby】Ruby 3.1.0 Preview版が確認できる環境を構築してみた(ソースからのビルド)

Last updated at Posted at 2021-11-10

はじめに

11/9にRuby 3.1.0 Preview版がリリースされました!

早速使ってみたかったので、ruby-3-1-0-preview1が動作できる環境を作ってみました。
(10分くらいでできます。)
rbenvに対象のバージョンがなさそうだったので、ソースからビルドする方法で行いました。

rbenv install --list-all | grep 3.1.0
# 3.1.0-dev
# ruby-3-1-0-preview1がない

動作環境

Mac OS Big Sur 11.2.1(20D74)
gcc version 4.9.4 (Homebrew GCC 4.9.4)

環境構築

※こちらのコードをcloneすればスムーズにできますので、参考にしてください

まず、ビルド後のファイルを格納するディレクトリを作ります。

mkdir installed_files

Ruby 3.1.0 Preview版のソースコードをダウンロードして解凍します。
解凍後、ruby-3.1.0-preview1ディレクトリが作成されます。

wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.gz
tar -zxvf ruby-3.1.0-preview1.tar.gz # untar

現状のディレクトリ構造は以下のようになります。

.
├── installed_files
├── ruby-3.1.0-preview1
└── ruby-3.1.0-preview1.tar.gz

次にソースからビルドをします。(参照 Rubyのインストール)
解凍後の作成されるruby-3.1.0-preview1ディレクトリに移動して以下を実行します。

# 解凍後のディレクトリに移動
cd ruby-3.1.0-preview1 

# ビルド後に生成されるファイルをinstalled_filesディレクトリに保存する設定
./configure --prefix="`pwd | xargs dirname`/installed_files" 

# ビルド
make
sudo make install

installed_filesディレクトリにファイルが生成されていれば、ビルド完了です。
以下のディレクトリ構成になります。

.
├── installed_files
│   ├── bin
│   ├── include
│   ├── lib
│   └── share
├── ruby-3.1.0-preview1
└── ruby-3.1.0-preview1.tar.gz

Rubyの実行

実行用のスクリプトmain.rbを作ります。

cd ../ # 解凍後の`ruby-3.1.0-preview1`フォルダから一つ上に戻る
touch main.rb

以下のコードをmain.rbに書きます。
ちなみに内容は新しく機能追加されたHashのシンタックスシュガー{ a: }の実行例です。

main.rb
puts "hello ruby 3.1.0 !"

puts ""

puts <<'TEXT'
・Values in Hash literals and keyword arguments can be omitted. [Feature #14579]
TEXT

a = 'hoge'

h = { a: a }
puts <<"TEXT"
      normal syntax : { a : a } => #{h}
TEXT

h = { a: }
puts <<"TEXT"
      syntax sugar : { a: } => #{h}
TEXT

ビルド後の生成されたrubyのbinを指定して、3.1.0 Preview版を実行します

installed_files/bin/ruby main.rb 

以下の出力がされればOKです。

hello ruby 3.1.0 !

・Values in Hash literals and keyword arguments can be omitted. [Feature #14579]
      normal syntax : { a : a } => {:a=>"hoge"}
      syntax sugar : { a: } => {:a=>"hoge"}

main.rbを変更すれば、他の機能を試せると思います。

最後に

何か不足な情報があればご教示いただければ幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1