CentOS5.11へgcc-4.8.5をインストール

たまたま余っていたCentOS5.11のサーバにpython2.7.12をインストールし、pylabをインストールしようとするとエラー。

 error: ‘SOCK_CLOEXEC’ was not declared in this scope
    error: command 'gcc' failed with exit status 1

どうもOSが古いと色々問題があります。

そこでこちらを参考にGCCをインストールします

ダウンロード

以下のサイトからダウンロードします。とりあえず最新版をダウンロードしました。

コンパイル

# mkdir /usr/local/gcc-4.8.5
# export LD_LIBRARY_PATH=/usr/local/gcc-4.8.5/lib:$LD_LIBRARY_PATH
# bunzip2 gmp-6.1.1.tar.bz2 
# tar xvfp gmp-6.1.1.tar
# cd gmp-6.1.1
# ./configure --prefix=/usr/local/gcc-4.8.5
# make && make install
# xz mpfr-3.1.4.tar.xz 
# cd mpfr-3.1.4
# ./configure --prefix=/usr/local/gcc-4.8.5 --with-gpm=/usr/local/gcc-4.8.5
# make && make install
# tar zxvfp mpc-1.0.3.tar.gz 
# cd mpc-1.0.3
# ./configure --prefix=/usr/local/gcc-4.8.5 --with-gmp=/usr/local/gcc-4.8.5 --with-mpfr=/usr/local/gcc-4.8.5
# make && make install
# tar zxvfp gcc-4.8.5.tar.gz 
# cd gcc-4.8.5
# ./configure --prefix=/usr/local/gcc-4.8.5 --enable-checking=release --with-gpm=/usr/local/gcc-4.8.5 --with-mpfr=/usr/local/gcc-4.8.5 --with-mpc=/usr/local/gcc-4.8.5 --enable-languages=c,c++
# make && make install

環境設定

使う際には、環境変数に入れて使い分けます

$ export LD_LIBRARY_PATH=/usr/local/gcc/lib:/usr/local/gcc/lib64:$LD_LIBRARY_PATH
$ export PATH=/usr/local/gcc/bin:$PATH
$ alias gcc="gcc-4.8.5"
$ alias g++="g++-4.8.5"