CentOS 6.8でGCCのバージョンを「4」から「7」に更新

環境

  • CentOS release 6.8 (Final)
  • AWS EC2

背景

Rubyのバージョンを2.5.1にあげようとしたところ、以下のエラーが発生。

$ rbenv install 2.5.1
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

このエラーはGCCのバージョンをあげることで解決できるようです。

現在のバージョンは「4.4.7」。

$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

GCCのバージョンを「7」に更新

今回はGCCのバージョンを「4→7」にあげていきます。

コマンドは以下のとおり。

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-7-gcc*
$ scl enable devtoolset-7 bash

バージョンを確認します。

$ gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

変更されていますね。

常にこのバージョンのGCCが使われるように、「/etc/profile.d/」にスクリプトファイルを追加しておきます。

$ sudo vim /etc/profile.d/enabledevtoolset-7.sh
# /etc/profile.d/enabledevtoolset-7.sh
source scl_source enable devtoolset-7

再度SSH接続してみて、バージョンが正しいことを確認。

$ gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

以上!

Sources

兵庫県西宮市生まれのフリーランスRailsエンジニア。案件によってWordPressの作業も請け負ったりしてます。2014年から2016年にかけてオーストラリアで生活。 現在は東京を拠点に活動。/ 前職・資格:公認会計士 / プログラミング言語:Ruby, JavaScript, HTML, CSS / 日本語・英語
コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です