hotoolong's blog

プログラムのことやエンジニアリングに関することを記事にしています。

Ruby 3.0.0 preview1 の インストール

イントロ

Ruby 3.0.0 preview1がリリースされました。

www.ruby-lang.org

RBS、Ractorなど新しい機能が試してみたいところですね。

手順

ruby-build の アップグレード

まずruby-buildのバージョンアップをしましょう。

$ brew upgrade ruby-build

インストール時のメッセージにOpenSSLのバージョンに関して注釈があります。

ruby-build installs a non-Homebrew OpenSSL for each Ruby version installed and these are never upgraded.

To link Rubies to Homebrew's OpenSSL 1.1 (which is upgraded) add the following
to your ~/.config/fish/config.fish:
  export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"

簡単に訳すと

ruby-build はインストールされた Ruby のバージョンごとに、Homebrew ではない OpenSSL をインストールしますが、これらは決してアップグレードされません。
RubyをHomebrewのOpenSSL 1.1(アップグレードされている)にリンクさせるには、次のように追加します。

あなたの設定ファイルに:
  export RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)"

私の場合はシェルがfishなので
このexportは設定できないのでset -xでglobalに設定します。

set -x RUBY_CONFIGURE_OPTS --with-openssl-dir=(brew --prefix openssl@1.1)

ruby の インストール

install list を確認

rbenv install --list は stable のみが表示されるためまだ3.0は表示されません。

$ rbenv install --list
2.5.8
2.6.6
2.7.1
jruby-9.2.13.0
maglev-1.0.0
mruby-2.1.2
rbx-5.0
truffleruby-20.2.0
truffleruby+graalvm-20.2.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all' to show all local versions.

--list-all ですべてが表示されるので3.0.0-preview1が追加されていることを確認しましょう。

ローカルのOpenSSLバージョン確認

ローカルのOpenSSLのバージョンを確認

$ openssl version
OpenSSL 1.1.1g  21 Apr 2020

同じバージョンなので設定したものをつかってもらうことにします。

rbenv install

普通にインストールすると

$ rbenv install 3.0.0-preview1
Downloading openssl-1.1.1g.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/ddb04774f1e32f0c49751e21b67216ac87852ceb056b75209af2443400636d46
Installing openssl-1.1.1g...

このようにOpenSSLのインストールから開始されます。
先程の RUBY_CONFIGURE_OPTS のオプションを追加しておくと設定されたOpenSSLを使ってもらえます。

 $ rbenv install 3.0.0-preview1
Downloading ruby-3.0.0-preview1.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0-preview1.tar.bz2
Installing ruby-3.0.0-preview1...

上記のようにRUBY_CONFIGURE_OPTSを設定しているとrubyのインストールが始まります。 こうすることでインストール時間も節約できますね。

$ rbenv local 3.0.0-preview1
$ ruby -v
ruby 3.0.0preview1 (2020-09-25 master 0096d2b895) [x86_64-darwin19]

Enjoy Ruby life!