Ubuntuで、Rのバージョンを3.4.1にアップデートした後、パッケージが見つからない場合の対処法をお伝えいたします。

すでにRStudio上でRを動かしている場合、パッケージのインストール先はデフォルトでユーザーのホームディレクトリ配下になっています。
今回の問題は、このホームディレクトリ配下のパスを認識しなくなったことが原因です。

環境

環境を確認しておきます。

ubuntuのバージョン


$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"

Rのバージョン


$ R --version

R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
http://www.gnu.org/licenses/.

RStudioのバージョン


RStudio
Version 1.0.143 – © 2009-2016 RStudio, Inc.
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) RStudio Safari/538.1 Qt/5.4.0

確認

R上でRがどのパスを認識しているかを確認します。
私の環境では次のようになり、ホームディレクトリ配下のパッケージのインストール先が認識されていないことが確認できます。


> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"       "/usr/lib/R/library"

対処法: 今までと同じ

R起動時にホームディレクトリ配下のパッケージのインストール先ディレクトリを認識するためには、/etc/R/Renvironファイルを変更します。
次は、vimで/etc/R/Renvironを開いています。


$ sudo vim /etc/R/Renviron

/etc/R/Renvironファイルで43〜45行目あたりの次の箇所をコメントアウトします。


【変更前】
# edd Jun 2017  Comment-out R_LIBS_USER
#R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

【変更後】
# edd Jun 2017  Comment-out R_LIBS_USER
R_LIBS_USER=${R_LIBS_USER-'~/R/x86_64-pc-linux-gnu-library/3.4'}
##R_LIBS_USER=${R_LIBS_USER-'~/Library/R/3.4/library'}

最後に、Rを立ち上げ直してR上で設定した内容が反映されているかを確認します。


> .libPaths()
[1] "/home/system-developer/R/x86_64-pc-linux-gnu-library/3.4"
[2] "/usr/local/lib/R/site-library"                           
[3] "/usr/lib/R/site-library"                                 
[4] "/usr/lib/R/library" 

対処法: 一時的

一時的に、指定したディレクトリをパッケージのインストール先として認識させる場合は、Rの.libPaths関数を用いて反映させることもできます。
.libPaths関数の引数に、既存のディレクトリと新たに追加するディレクトリを指定すれば認識されます。


> .libPaths(c(.libPaths(), "/home/system-developer/R/x86_64-pc-linux-gnu-library/3.4/"))

この方法は一時的にディレクトリを認識させる方法であるため、Rを立ち上げたときに毎回設定しなくてはならないことにご注意ください。

R アップデート後にパッケージが見つからない場合の対処法