はじめに

今回は、LinuxのSSHサーバー上などでルート権限がない場合に、ユーザーディレクトリ上にソースコードをコンパイルしてRなどのソフトウェアをインストールする方法を記載します。
こちらのメリットとしては、パッケージのインストールやロードの際にpermissionの付与されていないルートディレクトリを参照することなく環境を構築できるので、バニラ状態から作成できるという点が挙げられます。一方で上記の理由から、特定のパッケージをインストールする際には、PNGのエンコード・デコードを行うライブラリであるC言語で書かれたlibpngなどを別途インストールしてパスを通す必要があり、ここが個人的に陥穽となりうるポイントだと感じたので記載させていただきました。

環境

・CPU : Intel Xeon Gold 6248 (Cascade Lake) |
・OS : Red Hat Enterprise Linux 7.6 |
・shell : Bash(デフォルトでcsh)|

1. Rのインストールとアクティベート

まずは、Rのソースコードをwebからダウンロードした後、PATHを通すまでの手順を記載します。
1. wget でコンパイラをインストール
インストールしたいディレクトリに以下のコマンドでソースコードを保存します。これはR-4.0.4の例になります。
wget https://cran.ism.ac.jp/src/base/R-4/R-4.0.4.tar.gz
2. tarで解凍し、ディレクトリに移行
tar xzvf R-4.0.4.tar.gz
cd R-4.0.4/

3. ディレクトリ配下にあるconfigureを実行。!!この際、--prefixでインストール先をユーザーディレクトリに指定することが最も大切な操作です。こちらを行わなければ、権限のない/usr/localがデフォルトで指定されており、インストールができません。
例として、現在のディレクトリにインストールする方法をあげます。
pwd
./configure --prefix=pwdで表示されたカレントディレクトリをペースト

4. エラーが出た場合、指示に従い --use~を引数として追加し再実行。
5. make で環境構築
make
make install

7. 以降はbashにおいて./R_4.0.4/bin/配下に存在するRを./Rの形で実行すればRが起動します。必要でしたら次のステップにしたがって環境変数を通してください。
8. 環境変数をユーザーのホームディレクトリ 以下にある./bashrcに追加する。
export PATH="--prefixで指定したパス/bin:$PATH"
./bashrcに記載された環境変数は次回以降にbashを立ち上げた際に適用されますので、コンソールを再起動するか、以下のコマンドで適用してください。
source .bashrc

2.libpngのインストール

これだけだとlinux用の画像表示パッケージがインストールされてないので、Rの多くのパッケージがインストールできません。(had non-zero existが返ってくる)
同様のプロセスでPNGのエンコード・デコードを行うライブラリであるC言語で書かれたlibpngを別途インストールする必要があります。
9.ソースコードを取得するwget https://cfhcable.dl.sourceforge.net/project/libpng/libpng16/1.6.34/libpng-1.6.34.tar.xz
10.解凍するtar xf libpng-1.6.34.tar.xz
11. ディレクトリ 以降cd libpng-1.6.34/
12. コンパイル./configure --prefixを指定
13. make check
14. sudo make install
15. export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"で.bashrcに環境パスを通す
16. Rを開いてinstall.packages()
これでRでPNGを扱えるようになったので、様々なパッケージがインストールできるようになると思われます。このように、ネットワーク解析を行いたい場合はigraphなどと、必要となるソフトウェアを追加していくことで扱えるパッケージが増加していきます