【Ruby】Win8+Mingw64+MSYS2でRuby2.3.0をコンパイルする

2016年1月11日Ruby

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

今回は、2015年12月25日にリリースされたRuby 2.3.0をコンパイルしていきたいと思います

 


 

今回は、前回の記事でインストールしたMSYS2を用いてコンパイルしていきます

Ruby 2.3.0での新要素などは以下をご覧ください

Ruby 2.3.0 リリース – ruby-lang.org

Ruby2.3.0リリース 主な新機能についてサンプルコードとともに紹介 – Act as Professional

 

ひとまず、現在インストールされているものを置いておきます

$ pacman -Qe
bash 4.3.042-4
bash-completion 2.1-6
bsdcpio 3.1.2-5
bsdtar 3.1.2-5
bzip2 1.0.6-2
catgets 1.1-2
coreutils 8.24-1
crypt 1.1-6
curl 7.45.0-1
dash 0.5.8-1
file 5.24-1
filesystem 2015.04-3
findutils 4.5.14-4
flex 2.6.0-1
gawk 4.1.3-1
gcc-libs 4.9.2-6
grep 2.22-1
gzip 1.6-1
inetutils 1.9.2-1
info 6.0-1
less 481-1
libxslt 1.1.28-7
libyaml 0.1.4-1
lndir 1.0.3-1
make 4.1-4
mingw-w64-x86_64-binutils 2.25.1-1
mingw-w64-x86_64-crt-git 5.0.0.4598.fc005cd-1
mingw-w64-x86_64-gcc 5.3.0-1
mingw-w64-x86_64-gcc-libs 5.3.0-1
mingw-w64-x86_64-gdb 7.10.1-1
mingw-w64-x86_64-headers-git 5.0.0.4598.fc005cd-1
mingw-w64-x86_64-libmangle-git 5.0.0.4509.2e5a9a2-1
mingw-w64-x86_64-libwinpthread-git 5.0.0.4573.628fdbf-1
mingw-w64-x86_64-make 4.1.2351.a80a8b8-1
mingw-w64-x86_64-pkg-config 0.29-1
mingw-w64-x86_64-tools-git 5.0.0.4592.90b8472-1
mingw-w64-x86_64-winpthreads-git 5.0.0.4573.628fdbf-1
mintty 1~2.2.1-1
msys2-keyring r9.397a52e-1
ys2-runtime 2.4.0.16814.ac5d7ed-1
ncurses 6.0.20151121-1
pacman 4.2.1.6317.6ac7836-1
pacman-mirrors 20150722-2
patch 2.7.5-1
pax-git 20140703.2.1.g469552a-1
pkgfile 15-1
rebase 4.4.1-6
repman-git r23.87bf865-1
sed 4.2.2-2
tar 1.28-3
tftp-hpa 5.2-1
time 1.7-1
tzcode 2015.e-1
unzip 6.0-2
util-linux 2.26.2-1
wget 1.16.3-1
which 2.21-2

 

Ruby 2.3.0のダウンロードからインストールまでは以下の通り

$ wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
$ tar zxvf ruby-2.3.0.tar.gz
$ cd ruby-2.3.0
$ ./configure
$ make
$ make install

 

コンパイル後、パスを通し以下のように出てきたら完了です

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw64]

 

さて、これでコンパイルしてできたRubyをmingw64_shell.batから実行する場合

gemやirbに関する操作を行う場合は

$ gem.cmd -v

のように「.cmd」とつけないと実行できません

また、コマンドプロンプトからgemの操作を行うとエラーが起きて実行できません

(これに関する情報があれば教えてほしい・・・)

 

とりあえず、これでRubyを用意できました

今後はこれを使っていろいろやっていきます

 

ちなみに、確認したところ

ruby-1.9.3-p551

ruby-2.0.0-p648

ruby-2.1.8

のコンパイルは成功しましたが

ruby-2.2.4

のコンパイルには失敗しました

とりあえず、Rubyの環境を整備したい方はどうぞ

 

おわり

 

追記:2016年1月31日

この方法でコンパイルしたRuby2.3.0では、RubyがSegmentation faultを起こす場合があります

(RubyInstallerのもので確認したところ、Segmentation faultは起きませんでした)

どうやら、win32oleのclipPutを使うとSegmentation faultが起こるようです

 

使用する場合は少し注意して下さい


 

更新履歴

2016年1月17日:タイトルが「~+MSMY2+~」となっていたので「~+MSYS2+~」に修正

2016年1月31日:Segmentation faultを起こす可能性があることを追記

Posted by しきゆら