Rをルート権限無しでCentOS7にインストールする

前置き

ルート権限無しで、と書いたが、devtoolset-8は管理者によってインストールされている必要がある。これによりGCCの新しめのバージョンを使えるようになる。逆に、これが無いと最近のオープンソースソフトウェアのソースコードの大体がまともにコンパイルできない。 www.softwarecollections.org 管理者に

# 1. Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
$ sudo yum install centos-release-scl

# On RHEL, enable RHSCL repository for you system:
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

# 2. Install the collection:
$ sudo yum install devtoolset-8

を実行してもらえばよい。

本題

最初に/home/$USER/localにPATHを通しておく。.bashrcなんかに

export LD_LIBRARY_PATH="/home/$USER/local/lib64:/home/$USER/local/lib:$LD_LIBRARY_PATH"
export LDFLAGS="-L/home/$USER/local/lib64 -L/home/$USER/local/lib $LDFLAGS"
export CPPFLAGS="-I/home/$USER/local/include $CPPFLAGS"

と書き込んだ後、$ exec bashなどすればよい。

次に、以下のシェルスクリプトを実行するか、一行ずつターミナルに打ち込んでいって、必要なパッケージを順にビルドしていけばよい。

source scl_source enable devtoolset-8
mkdir -p /home/$USER/local
cd /home/$USER/local

# zlib install
mkdir -p zlib
cd zlib
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/home/$USER/local
make -j20
make install
cd ../../

# bzip2 install
mkdir -p bzip2
cd bzip2
wget https://www.sourceware.org/pub/bzip2/bzip2-latest.tar.gz
tar xzvf bzip2-latest.tar.gz
cd bzip2-1.0.8
make install PREFIX=/home/$USER/local 
cd ../../

# xz install
mkdir -p xz
cd xz
wget https://tukaani.org/xz/xz-5.2.4.tar.gz
tar xzvf xz-5.2.4.tar.gz
cd xz-5.2.4
./configure --prefix=/home/$USER/local
make -j20
make install
cd ../../

# pcre install
mkdir -p pcre
cd pcre
wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz
tar xzvf pcre-8.44.tar.gz
cd pcre-8.44
./configure --prefix=/home/$USER/local --enable-utf8
make -j20
make install
cd ../../

# curl install
mkdir -p curl
cd curl
wget https://curl.haxx.se/download/curl-7.68.0.tar.gz
tar xzvf curl-7.68.0.tar.gz
cd curl-7.68.0
./configure --prefix=/home/$USER/local 
make -j20
make install
cd ../../

# R install
mkdir -p R
cd R
wget https://cran.ism.ac.jp/src/base/R-3/R-3.6.2.tar.gz
tar xzvf R-3.6.2.tar.gz
cd R-3.6.2
./configure --prefix=/home/$USER/local 
make -j20
make install
cd ../../