Rで install.packages を使ってパッケージをインストールしようとした時にエラーみたなメッセージが出た時の対処方法のメモです。(20/6/17更新)install.packages じゃなくて package.install って書いたみたいなので訂正しました。ご指摘ありがとうございます。
その1. yes/No/cancelって聞かれる
(現象) パッケージをインストールする際、以下のようなメッセージで止まってしまう。
> 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」を入力したらまた聞いてくる。
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がない)って言っているようです。
> 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 をインストールします。
sudo apt install build-essential
その3. 解決案がメッセージに書いてある場合
(現象) メッセージがいっぱい表示されていますがよーく見てみると…。
> 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 をインストールして再度実行してみます。
sudo apt install libcurl4-openssl-dev
今回のcurlの場合はそれで解決できました。
その4. X11が見つからない
(現象) 以下のエラーは X11 が見つからないようなことを言っています。
> install.packages('rgl')
(省略)
configure: error: X11 not found but required, configure aborted.
ERROR: configuration failed for package ‘rgl’
(解決策) X11をどのようにチェックしているかはソースコード中の configure を見るのが良いのですが、とりあえずはX11の開発者向けっぽいパッケージをインストールし再度Rを起動して試してみます。
sudo apt install xorg-dev
とりあえずX11が見つからないエラーはなくなりました。
その4. ファイルが見つからない
(現象) 以下のエラーは GL/glu.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
コマンドがインストールしていない場合は以下のようにしてインストールします。
sudo apt install apt-file
apt-file
コマンドを使えば以下のようにファイル名からパッケージを検索することができます。なんとなく libglu1-mesa-dev が良さそうな気がするので、それをインストールします。
$ 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で表示されました。
> 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を起動して試してみます。
> install.packages("curl")
> q() #一旦終了(これ大事)
以上です
また違ったメッセージに出会ったら追加しようと思います。