CentOS6にRuby-2.5.0をソースからインストールしようとすると、makeでエラーが発生してインストールできない。
CentOS6のgccが古いためにエラーになっている。
$ ./configure --prefix=/opt/ruby-2.5.0 --disable-install-doc $ make ...(略) prelude.c: In function ‘prelude_eval’: prelude.c:204: error: #pragma GCC diagnostic not allowed inside functions prelude.c:205: error: #pragma GCC diagnostic not allowed inside functions prelude.c:221: error: #pragma GCC diagnostic not allowed inside functions トップレベル: cc1: 警告: unrecognized command line option "-Wno-self-assign" cc1: 警告: unrecognized command line option "-Wno-constant-logical-operand" cc1: 警告: unrecognized command line option "-Wno-parentheses-equality" cc1: 警告: unrecognized command line option "-Wno-tautological-compare" make: *** [prelude.o] エラー 1
Bug #14234: Failed to build on CentOS 6.9 - Ruby trunk - Ruby Issue Tracking System
Ruby-2.5.1では修正されるようだが、とりあえずsclのdevtoolsetを使ってインストールできる。
/etc/profile.dに以下のようなファイルを作成しておいてシステムを再起動すれば、システム起動時からsclでインストールしたdevtoolsetが有効になるので、passengerのインストールやCapistranoでビルドが必要なgemのインストールもOK。(下記はdevtoolset-4の場合の例)
$ cat /etc/profile.d/enabledevtoolset-4.sh #!/bin/bash source scl_source enable devtoolset-4