注意
この記事の内容は古いです。最新の情報は
https://www.softwarecollections.org/en/scls/?search=Dev&policy=&repo=&order_by=-create_date&per_page=10
などをご覧ください。
導入
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)