c++11対応のg++をCentOSに入れてみた作業メモ。

yum installで取れるCentOSのデフォルトg++のバージョンは4.4.7(2013/10現在)。

% g++ --version
g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)

なので、別のリポジトリからg++4.7.2を持ってきて、CentOSにインストールしてみた。

以下のコマンドで取得。

cd /etc/yum.repos.d
wget https://people.centos.org/tru/devtools-1.1/devtools-1.1.repo 
yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++

以下のパス配下にインストールされます。

 /opt/centos/devtoolset-1.1/root/usr/bin/

インストール完了です。

# /opt/centos/devtoolset-1.1/root/usr/bin/g++ --version
g++ (GCC) 4.7.2 20121015 (Red Hat 4.7.2-5)

パスを通します。

export CC=/opt/centos/devtoolset-1.1/root/usr/bin/gcc
export CXX=/opt/centos/devtoolset-1.1/root/usr/bin/g++

Trouble Shooting

[Errno 14] PYCURL ERROR 6 - “Couldn’t resolve host ‘people.centos.org’”

PYCURL ERROR 6 - “Couldn’t resolve host ‘people.centos.org’“というエラー発生。

# yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
https://people.centos.org/tru/devtools/6/i386/RPMS/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'people.centos.org'"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: testing-devtools-6. Please verify its path and try again

これは、ipv6が有効になっていることによる問題のようだ。

以下を参考にした。

ipv6を無効にする。

% emacs /etc/sysconfig/network
=> NETWORKING_IPV6=noを追加
% emacs /etc/modprobe.conf
=> 以下を追加
   alias ipv6 off
   alias net-pf-10 off
% /sbin/chkconfig ip6tables off
% shutdown -r 0

[Errno 14] PYCURL ERROR 22 - “The requested URL returned error: 404 Not Found”

“The requested URL returned error: 404 Not Found"というエラー。

% sudo yum --enablerepo=testing-1.1-devtools-6 install devtoolset-1.1-gcc devtoolset-1.1-gcc-c++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
https://people.centos.org/tru/devtools/6/i386/RPMS/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: testing-devtools-6. Please verify its path and try again

これは、ftp.tsukuba.wide.ad.jpのミラーサイトには、testing-1.1-devtools-6のリポジトリが存在しないということ。

というわけで、ミラーサイトを変更してみます。理化学研究所に変更しました。以下にまとめました。

Reference