gnuのコンパイラとmakeをローカル環境にインストール

# 概要
計算機のgnuコンパイラが古いので、新しいコンパイラを入れる。ただし、旧バージョンのコンパイラも残すため、ローカル環境にインストールした。

# 環境
- OS: CentOS
- root権限なし
- もともとのmakeのバージョン：3.82

# gcc, g++, gfortran のインストール
gnuのソースをダウンロードして、configureでビルド、makeでインストールする。バージョンは11.4.0、インストール先は
```
${HOME}/local/gcc/${version_gcc}
```
とした。
```
$ pkg=gcc
$ version="11.4.0"
$ wget https://ftp.gnu.org/gnu/${pkg}/${pkg}-${version}/gcc-${version}.tar.gz
$ tar -xvf ${pkg}-${version}.tar.gz
$ rm ${pkg}-${version}.tar.gz
$ cd ${pkg}-${version}
$ ./contrib/download_prerequisites
$ mkdir build
$ cd build
$ ../configure --enable-languages=c,c++,fortran --prefix=${HOME}/local/${pkg}/${version_gcc} --disable-bootstrap --disable-multilib 
$ make
$ make install
$ cd ../..
```

この結果を反映するために、~/.bashrcに以下を追記。
```
export PATH=${HOME}/local/gcc/11.4.0/bin:$PAT
export LIBRARY_PATH=${HOME}/local/gcc/11.4.0/lib64:$LIBRARY_PATH
export LD_LIBRARY_PATH=${HOME}/local/gcc/11.4.0/lib64:$LD_LIBRARY_PATH
```
# open MPI のインストール
open MPIを
```
${HOME}/local/${pkg}/${version}/gcc-${version_gcc}
```
以下にインストールする。

```
$ pkg=openmpi
version="4.0.7"
$ version_gcc="11.4.0"
$ wget https://download.open-mpi.org/release/open-mpi/v4.0/${pkg}-${version}.tar.gz
$ tar -xvf ${pkg}-${version}.tar.gz
$ rm ${pkg}-${version}.tar.gz
$ cd ${pkg}-${version}
$ gccbin=${HOME}/local/gcc/${version_gcc}/bin
$ export CC=${gccbin}/gcc
$ export CXX=${gccbin}/g++
$ export F77=${gccbin}/gfortran
$ export FC=${gccbin}/gfortran
$ export LD_LIBRARY_PATH=${HOME}/local/gcc/${version_gcc}/lib64:$LD_LIBRARY_PATH
$ ./configure --prefix=${HOME}/local/${pkg}/${version}/gcc-${version_gcc}
$ make
$ make install
$ cd ..
```
この結果を反映するために、~/.bashrcに以下を追記。
```
export PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/bin:$PATH
export LIBRARY_PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/lib:$LD_LIBRARY_PATH
```

# make のインストール
open MPIを
```
${HOME}/local/${pkg}/${version}/gcc-${version_gcc}
```
以下にインストールする。

```
$ pkg=make
$ version="4.0.7"
$ version_gcc="11.4.0"
$ wget https://ftp.gnu.org/gnu/${pkg}/${pkg}-${version}.tar.gz
$ tar -xvf ${pkg}-${version}.tar.gz
$ rm ${pkg}-${version}.tar.gz
$ cd ${pkg}-${version}
$ gccbin=${HOME}/local/gcc/${version_gcc}/bin
$ export CC=${gccbin}/gc
$ export CPP=${gccbin}/g++
$ export LD_LIBRARY_PATH=${HOME}/local/gcc/${version_gcc}/lib64:$LD_LIBRARY_PATH
$ ./configure --prefix=${HOME}/local/${pkg}/${version}/gcc-${version_gcc}
$ make
$ make install
$ ln -sfn ${HOME}/local/${pkg}/${version}/gcc-${version_gcc}/bin/make ${HOME}/local/${pkg}/${version}/gcc-${version_gcc}/bin/gmake
$ cd ..
```
この結果を反映するために、~/.bashrcに以下を追記。
```
export PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/bin:$PATH
export LIBRARY_PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=${HOME}/local/openmpi/4.0.7/gcc-11.4.0/lib:$LD_LIBRARY_PATH
```

すぐに反映するには、
```
$ source ~/.bashrc
```
とする。



参考URL
https://gcc.gnu.org/wiki/InstallingGCC
https://qiita.com/liveralmask/items/6ed4a98ebb3bf6b7f707
https://qiita.com/cometscome_phys/items/dcdd4252754514d7c7a7
https://qiita.com/frodo821/items/31400f78aad79dd14ae8
https://docs.open-mpi.org/en/v5.0.x/installing-open-mpi/quickstart.html