ソースからインストールする際に、gccのバージョンが低いから上げてねと言われる。

でも、yum upgrade gccなどではあげれないっぽいので、devtoolsetというのを使って上げる。

必要なソフトをインストール

Software Collections ツールをインストールする必要があるみたい。(よくわかってない・・)

yum install scl-utils

Devtoolset-2リポジトリ追加

Devtoolset-2 のリポジトリを追加して、そこから4.7以上のバージョンをインストールします。

cd  /etc/yum.repos.d/
wget http://people.centos.org/tru/devtools-2/devtools-2.repo
or
wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo


yum install devtoolset-2-gcc

インストール先は /opt/rh/devtoolset-2配下にインストールされる。

ls -la /opt/rh/devtoolset-2/root/usr/bin/gcc

インストールしたgccのバージョン確認

# /opt/rh/devtoolset-2/root/usr/bin/gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Copyright (C) 2013 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.

有効化

# scl enable devtoolset-2 bash
# gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Copyright (C) 2013 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.

Pathの設定

pathが通ってないので、scl enableコマンドでパッケージを有効化する。 仕組みとして、devtoolset-2はインストール先の/opt/rh/devtoolset-2を指しており、そのディレクトリ配下にenableというファイルがある。このコマンドが実行されることで 環境変数 がセットされる。

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

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

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

devtoolset-3のサイト