LoginSignup
11
10

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-05-01

環境

$ 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を使うという方法を取ったが,無い場合は気合いでどうにかするしかないかもしれない…

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

参考情報

11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10