CentOSに新しいバージョンのGCC/G++(4.8/4.9)をインストールする

スポンサーリンク

CentOS に Software Collections を使用して新しいバージョンの GCC/G++ コンパイラをインストールする方法です。

標準インストールされるGCC/G++のバージョン

yumの標準リポジトリでインストールされるgcc/gcc-c++はバージョンが古いです。

# yum install gcc gcc-c++
# gcc -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
# g++ -v
gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)

このままでは C++11/14 に対応してないため、一部のプログラムがコンパイルできないという状況にもなりえます。そのため、Software Collections の Developer Toolset を使用して新しいバージョンのパッケージをインストールしたいと思います。

事前準備として Software Collections ツールをインストールしてください。(依存関係で勝手にインストールされますがこれを使うという意識を持つために)

# yum install scl-utils

Devtoolset-2リポジトリ

Devtoolset-2 のリポジトリを追加してインストールします。

# cd  /etc/yum.repos.d/
# wget http://people.centos.org/tru/devtools-2/devtools-2.repo
# yum install devtoolset-2-gcc devtoolset-2-binutils
# yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran

/opt/rh/devtoolset-2以下にインストールされます。

# ll /opt/rh/devtoolset-2/root/usr/bin/gcc
-rwxr-xr-x 2 root root 750576  3月 13 01:54 2014 /opt/rh/devtoolset-2/root/usr/bin/gcc
# ll /opt/rh/devtoolset-2/root/usr/bin/g++
-rwxr-xr-x 4 root root 754064  3月 13 01:54 2014 /opt/rh/devtoolset-2/root/usr/bin/g++

インストール先を見ても分かる通り、このままでは PATH が通っていませんのでscl enableコマンドを実行してパッケージを有効化します。devtoolset-2 はインストール先の/opt/rh/devtoolset-2を指してると思ってください。そのディレクトリ配下にenableというファイルがあり、これが実行されることで 環境変数 がセットされます。

Devtoolset-2 では GCC 4.8 がインストールされますので、C++11 にも対応していますね。

# scl enable devtoolset-2 bash
# gcc -v
gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)
# g++ -v
gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)

ただし、これだとシェルを起動するたびに毎回手動でscl enable~を実行して PATH を通す必要があります。一時的に変えたい場合以外は自動で環境変数をセットするようにしておきます。

# echo 'source /opt/rh/devtoolset-2/enable' >> /etc/profile.d/devtools

Devtoolset-3リポジトリ

現在の最新版は Devtoolset-3 が提供されています。同様にリポジトリを追加してインストールしてみましょう。

# cd  /etc/yum.repos.d/
# wget https://copr-fe.cloud.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo
# yum install devtoolset-3-gcc devtoolset-3-binutils
# yum install devtoolset-3-gcc-c++ devtoolset-3-gcc-gfortran

/opt/rh/devtoolset-3以下にインストールされます。Devtoolset-2 との共存も可能です。

# ll /opt/rh/devtoolset-3/root/usr/bin/gcc
-rwxr-xr-x 2 root root 842720  6月 19 02:11 2015 /opt/rh/devtoolset-3/root/usr/bin/gcc
# ll /opt/rh/devtoolset-3/root/usr/bin/g++
-rwxr-xr-x 4 root root 846112  6月 19 02:11 2015 /opt/rh/devtoolset-3/root/usr/bin/g++

PATH を通す方法も Devtoolset-2 と同じです。Devtoolset-3 では GCC 4.9 がインストールされます。

# scl enable devtoolset-3 bash
# gcc -v
gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
# g++ -v
gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)

 Devtoolset-3 — Software Collections
 rhscl/devtoolset-3 Copr