【Ruby】MacでRuby2.4.0をコンパイルしてみる

2017年1月29日Mac,Ruby

こんにちは、しきゆらです

今回は、(この記事を書いている時点での)Ruby最新バージョンである2.4.0をコンパイル&インストールしていきます

 

詳しい変更点などは、Rubyの公式サイトからどうぞ

いつも通り高速化とかがメインなのかしら

大きく変わりそうなところは「Unify Fixnum and Bignum into Integer」とか

Introduce hash table improvement (by Vladimir Makarov)」あたりかしら

 

それではれっつこんぱいる!


 

 

DLやら解凍やらは省略

(最近は解凍って言わないとか聞いて震える)

 

コンパイルの手順もいつもどおり

 

コンパイルオプション確認

なお、普段からコンパイルしている場合

$ ruby -r rbconfig -e 'puts RbConfig::CONFIG["configure_args"]'
'--prefix=/usr/local/Ruby' '--with-openssl-dir=/usr/local/opt/openssl'

とするとコンパイル時につけていたオプションを表示してくれます

とても便利ね

 

OpenSSLの設定

私の環境では、Macにデフォルトで入っているRubyとは別の場所にコンパイルしてあるのと

OpenSSLをbrewのものを使うようにしますよ

 

さて、まずはこんふぃぐれ

$ ./configure --prefix=/usr/local/Ruby --with-openssl-dir=/usr/local/opt/openssl

% あれやら
% これやら
---
Configuration summary for ruby version 2.4.0

   * Installation prefix: /usr/local/Ruby
   * exec prefix:         ${prefix}
   * arch:                x86_64-darwin16
   * site arch:           ${arch}
   * RUBY_BASE_NAME:      ruby
   * ruby lib prefix:     ${libdir}/${RUBY_BASE_NAME}
   * site libraries path: ${rubylibprefix}/${sitearch}
   * vendor path:         ${rubylibprefix}/vendor_ruby
   * target OS:           darwin16
   * compiler:            clang
   * with pthread:        yes
   * enable shared libs:  no
   * dynamic library ext: bundle
   * CFLAGS:              ${optflags} ${debugflags} ${warnflags}
   * LDFLAGS:             -L. -fstack-protector -L/usr/local/lib
   * optflags:            -O3 -fno-fast-math
   * debugflags:          -ggdb3
   * warnflags:           -Wall -Wextra -Wno-unused-parameter \
                          -Wno-parentheses -Wno-long-long \
                          -Wno-missing-field-initializers \
                          -Wno-tautological-compare \
                          -Wno-parentheses-equality \
                          -Wno-constant-logical-operand -Wno-self-assign \
                          -Wunused-variable -Wimplicit-int -Wpointer-arith \
                          -Wwrite-strings -Wdeclaration-after-statement \
                          -Wshorten-64-to-32 \
                          -Wimplicit-function-declaration \
                          -Wdivision-by-zero -Wdeprecated-declarations \
                          -Wextra-tokens
   * strip command:       strip -A -n
   * install doc:         yes
   * man page type:       doc

---

いつのまにか、configureの実行の最後にこんなのが出るようになっていた

prefixの場所とか環境とか確認できるようになったのね

 

コンパイル & インストール

あとは、make & make install

$ make
% あれこれ

$ make install
% ↑インストール位置などによってはsudoとか必要

普段通り

難しいことはない

 

Rubyのパスを通す

次に、コマンドを使えるようにパスを通します

私の環境では「/usr/local/Ruby」にインストールしていて

コンパイルしたものは「/usr/local/bin」にまとめている

そこで、「/usr/local/Ruby」から「/usr/local/bin」にシンボリックリンクを貼ります

$ ln -s /usr/local/Ruby/bin/ruby /usr/local/bin
% その他、必要なもののリンクを貼る

$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]

これでインストール完了ですよ

簡単ですね

 

ということで、さらっとこんぱいるして使えるようにしました

コンパイルオプションを確認できる方法とか覚えておくと便利ですね

 

今回はここまで

おわり

 

Posted by しきゆら