CentOSで新しいGCCなどといった開発ツールを使いたい場合のメモ

  • 8
    Like
  • 0
    Comment
More than 1 year has passed since last update.

環境

$ cat /etc/redhat-release
CentOS release 6.7 (Final)
$ uname -a
Linux XXX 2.6.32-573.8.1.el6.x86_64 #1 SMP Tue Nov 10 18:01:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

この環境ではgccのバージョンが4.4で,正直に言って色々と辛い…
どうにかして新しいツールチェインを使えるようにする.
少なくともC++11が使えるgcc 4.8以上のものが欲しい…

Software Collectionsを使う

Red Hat Software Collections (SCL)の一部として,開発ツールのパッケージ群が配布されているそうだ(SCLが何かはよく知らない…).
パッケージ管理ツールyumが参照するリポジトリ一覧にSCL関連のリポジトリを追加すればyumからパッケージとして扱うことができるようになる.
便利そうなので,SCLを使うことにする.

yumがdevtoolsetリポジトリを見るように設定

比較的新しい開発ツール集のリポジトリとしてdevtoolset-4があるようですが,これよりは古いdevtoolset-3で十分なので,このリポジトリのrepoファイルをダウンロードして,/etc/yum.repos.d/に置く.

devtoolset-3のrepoファイルへのURLはhttps://copr.fedorainfracloud.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo

インストール

次のパッケージで大体のものがインストールできる:

$ yum install scl-utils devtoolset-3-toolchain devtoolset-3-perftools

これらパッケージに何が紐付けられているかはyum deplistで閲覧できる.

各種設定

devtoolset-3リポジトリのパッケージをインストールしても,そのままでは使用できない.
環境変数の設定はsclコマンドを使って行うことができる.
詳細はmanを見るとよい.

なおdevtoolset-3リポジトリのパッケージは/opt/rh/devtoolset-3にインストールされるようで,環境変数を設定するスクリプトは/opt/rh/devtoolset-3/enableである.

インテルコンパイラとGCCの相性

手元のインテルコンパイラのバージョンは14なのだが,どうやらgcc 4.9との(正確には,mpicc/mpicxxとgcc/g++の)相性が悪いらしい
これは困った.
devtoolset-2だとgccのバージョンは4.8だそうなので,こちらの方がよいだろうか?…

もう一度インストール

結局,devtoolset-2をインストールすることにした.

devtoolset-2のrepoファイルのURLはhttp://people.centos.org/tru/devtools-2/devtools-2.repo
インストールするパッケージ名はdevtoolset-3とほとんど同じで,数字の3を2に変えたものでよい…はずだが,devtoolset-2-perftoolsに含まれているdevtoolset-2-systemtapがインストールできず,それ以外のパッケージを個別にインストールした.

所感

今回は特権があったからSCLを使うという方法を取ったが,無い場合は気合いでどうにかするしかないかもしれない…

ツールをコンパイルして使うだけならば,特権は不要なはずなので,何かしら方法はあるかもしれないけど,非常に手間がかかりそうな気がする.

参考情報