Rでパッケージがインストールできない時の対処法メモ

Rで install.packages を使ってパッケージをインストールしようとした時にエラーみたなメッセージが出た時の対処方法のメモです。(20/6/17更新）install.packages じゃなくて package.install って書いたみたいなので訂正しました。ご指摘ありがとうございます。

## その1. yes/No/cancelって聞かれる
（現象） パッケージをインストールする際、以下のようなメッセージで止まってしまう。

```console:not_writable
> install.packages("dplyr")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
Warning in install.packages("dplyr") :
  'lib = "/usr/local/lib/R/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel)
```

（解決策） 最初にパッケージをインストールする時は聞かれるメッセージです。「yes」で良いと思います。 メッセージ内容は/usr/local/lib/R/site-library に書き込む権限がないから、ホームディレクトリ上の個人用ライブラリを使いますか？と聞いているので、他の人と共有する必要がなければ「yes」で問題ないと思います。

----

（現象） 「yes」を入力したらまた聞いてくる。

```R:create_a_personal_library
Would you like to create a personal library
‘~/R/x86_64-pc-linux-gnu-library/3.5’
to install packages into? (yes/No/cancel)
（省略）
```

（解決策） 「yes」で良いと思います。 ホームディレクトリ上の個人用ライブラリを作って良いか？と聞いていますので。

## その2. makeがない
（現象） 以下のような感じのエラーです。途中のところで「sh: 1: make: not found」（makeがない）って言っているようです。

```R:makeがないエラー
> install.packages("data.table")
（省略）
* installing *source* package ‘data.table’ ...
** package ‘data.table’ successfully unpacked and MD5 sums checked
** libs
sh: 1: make: not found
Warning in system(cmd) : error in running command
ERROR: compilation failed for package ‘data.table’
* removing ‘~/R/x86_64-pc-linux-gnu-library/3.5/data.table’
```

（解決策） `make` コマンドがないのでインストールします。`make` 以外にコンパイラ等も必要となるはずですので、それらをある程度まとめてインストールできる build-essential をインストールします。

```console:build-essentialのインストール
sudo apt install build-essential
```

## その3. 解決案がメッセージに書いてある場合
（現象） メッセージがいっぱい表示されていますがよーく見てみると…。

```R:curlエラー
> install.packages("curl")
* installing *source* package ‘curl’ ...
** package ‘curl’ successfully unpacked and MD5 sums checked
Package libcurl was not found in the pkg-config search path.
Perhaps you should add the directory containing `libcurl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libcurl' found
Package libcurl was not found in the pkg-config search path.
Perhaps you should add the directory containing `libcurl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libcurl' found
Using PKG_CFLAGS=
Using PKG_LIBS=-lcurl
------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libcurl was not found. Try installing:
 * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc)
 * rpm: libcurl-devel (Fedora, CentOS, RHEL)
 * csw: libcurl_dev (Solaris)
If libcurl is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libcurl.pc file. If pkg-config
is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:
R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'
--------------------------------------------------------------------
```

（解決策） そう、英語で嫌になるかもしれませんが、よーく見てみると「---- ANTICONF ERROR ----」のところに「Try installing:」として試して欲しいことが書かれています。親切ですねー。まずはそのメッセージにしたがってみます。Ubuntuなら libcurl4-openssl-dev をインストールして再度実行してみます。

```console:libcurl4-openssl-devのインストール
sudo apt install libcurl4-openssl-dev
```

今回のcurlの場合はそれで解決できました。

## その4. X11が見つからない
（現象） 以下のエラーは X11 が見つからないようなことを言っています。

```R:X11が見つからないエラー
> install.packages('rgl')
（省略）
configure: error: X11 not found but required, configure aborted.
ERROR: configuration failed for package ‘rgl’
```

（解決策） X11をどのようにチェックしているかはソースコード中の configure を見るのが良いのですが、とりあえずはX11の開発者向けっぽいパッケージをインストールし再度Rを起動して試してみます。

```console:X11の開発者向けっぽいパッケージのインストール
sudo apt install xorg-dev
```

とりあえずX11が見つからないエラーはなくなりました。

## その4. ファイルが見つからない
（現象） 以下のエラーは GL/glu.h がないようなことを言っています。ファイルがないと言われてもどのパッケージをインストールしたら良いのかが分かりません。

```R:GL/gl.hが見つからないエラー
> install.packages("rgl")
（省略）
checking GL/glu.h usability... no
checking GL/glu.h presence... no
checking for GL/glu.h... no
configure: error: missing required header GL/glu.h
```

（解決策） `apt-file` コマンドを使って対象のファイルが含まれているパッケージを探します。`apt-file` コマンドがインストールしていない場合は以下のようにしてインストールします。

```console:apt-fileコマンドのインストール
sudo apt install apt-file
```

`apt-file`コマンドを使えば以下のようにファイル名からパッケージを検索することができます。なんとなく libglu1-mesa-dev が良さそうな気がするので、それをインストールします。

```console:apt-fileでGL/glu.hを含むパッケージを検索
$ apt-file search GL/glu.h
emscripten: /usr/share/emscripten/system/include/GL/glu.h
libglu1-mesa-dev: /usr/include/GL/glu.h
libroot-core5.34: /usr/lib/x86_64-linux-gnu/root5.34/cint/include/GL/glu.h
mingw-w64-common: /usr/share/mingw-w64/include/GL/glu.h
mingw-w64-i686-dev: /usr/i686-w64-mingw32/include/GL/glu.h
mingw-w64-x86-64-dev: /usr/x86_64-w64-mingw32/include/GL/glu.h
```

インストールができたらRを起動して再度インストールを試します。もしエラーが出たらまた検索してって繰り返します。

## その5. error setting certificate verify locationsエラー

（現象） github経由でインストールしようとすると以下のようなエラーが表示されてできないことがあります。Microsoft R Openで表示されました。

```R:shinyのインストール
> devtools::install_github("ua-parser/uap-r")
Installation failed: error setting certificate verify locations:
  CAfile: microsoft-r-cacert.pem
  CApath: none
```

（解決策） このエラーは curl が出していますので CRANのcurl をインストールしRを一旦終了し再度Rを起動して試してみます。

```R:curlのインストール
> install.packages("curl")
> q() #一旦終了（これ大事）
```


## 以上です
また違ったメッセージに出会ったら追加しようと思います。