Developer Toolset 4でCentOS6にお手軽にGCC5.2をインストール

  • 6
    Like
  • 0
    Comment

注意

この記事の内容は古いです。最新の情報は
https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/
などをご覧ください。

導入

CentOS(・RHEL)6のデフォルトのコンパイラはC++11にすらまともに対応していないクソコンパイラです。RedHatは定期的に標準でインストールできるGCCを含む各種ソフトのバージョンが腐っていくのを見かねて定期的に比較的新しいバージョンを別の場所にインストールするパッケージを用意しています。それのパクリクローンOSであるCentOS6もRedHatのサーバからソースをパクって独自ビルドし、使えるようにしています。これらのパッケージの中の1つがGCCの新しいバージョンが含まれているDeveloper Toolsetと呼ばれているものです。従来、バージョン3までが知られていました。しかし、これだとGCC4.9までのバージョンしかインストール出来ません。しかし、2015/11にRedHatがGCC5.2を含んだバージョン4が利用できるというアナウンスを出しました。つい最近までこれがCentOSでも利用できるという情報はなかなか回ってこなかったのですが、バージョン3が置いてあるサイトを探してみるとそれらしきものがありました。バージョン3までに比べるとビルド元の信頼性は下がりますが、ここではそれをありがたく頂戴する方法を紹介します。

なお、時間がかかってでもいいから最新版をソースビルドでインストールしたい方は過去記事をご覧ください。

インストール前の注意

これは一個人がRedHatのサーバからソースコードを取ってきて独自にビルドしたものだと思います。万が一動作不良などが起こっても自己責任でお願いします。 特にお仕事で利用しているサーバにインストールする場合はご注意ください。
正直に言ってダウンロード数が異常に少ないのでかなり怪しいです。

リポジトリの詳細

devtoolset3のリポジトリがあるサイトに概要があります。ただし、devtoolset3の人とは別人です。特に詳細もありません。ビルド自体は2015年末あたりに全て完了しているようです。
https://copr.fedorainfracloud.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap2/

インストール方法

当然管理者権限が必要です。C/C++のみを使用する場合は次の方法でインストールします。

cd /etc/yum.repos.d/
sudo wget https://copr.fedorainfracloud.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap2/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap2-epel-6.repo
sudo yum install devtoolset-4-gcc devtoolset-4-binutils devtoolset-4-gcc-c++

有効化方法

scl enable devtoolset-4 bash #bashはシェルなどのコマンド(スペースで区切る場合は全体を引用符で囲ってください)

シェルを起動した場合は通常より1回多くexitコマンド・Ctrl+Dなどで終了する必要があります。

常時有効にする場合は
http://qiita.com/aqn/items/08da3ac2b8f3d70efcfa
を参考にするとよいと思います。

バージョン確認

[tatsu@localhost yum.repos.d]$ scl enable devtoolset-4 $SHELL
[tatsu@localhost yum.repos.d]$ gcc --version
gcc (GCC) 5.2.1 20150902 (Red Hat 5.2.1-2)
Copyright (C) 2015 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.

使用上の注意

GCC5は、ソースビルドするとメッセージの一部が日本語になりますが、この方法でインストールすると全て英語になってしまいます。一部日本語でエラーメッセージを表示してくれるっていうのがGCCの大きなメリットなのにこんなんじゃ続けてClangソースビルドしたほうがマシだよ・・・

[tatsu@localhost yum.repos.d]$ gcc
gcc: fatal error: no input files
compilation terminated.
[tatsu@localhost yum.repos.d]$ gcc5 --version
gcc5 (GCC) 5.3.0
Copyright (C) 2015 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.

[tatsu@localhost yum.repos.d]$ gcc5
gcc5: 致命的エラー: 入力ファイルがありません
コンパイルを停止しました。

gcc5は以前にソースビルドしたGCC5.3.0です。(参照:http://qiita.com/Tats_U_/items/5fed0f9dafb4ecb15c12)

参考(旧バージョンのインストール方法)

http://www.task-notes.com/entry/20151114/1447492231