本日はhttp://r4ds.had.co.nz/data-visualisation.htmlの3章をやる予定だったが、しょっぱなから壁が。
tidyverseのインストールに失敗する
テキストにあるように、
install.packages("tidyverse")
とするわけだが、ERRORが大量に出てくる。
installation of package ‘XXX’ had non-zero exit status
このキーワードでググっても、「r-base-dev」をインストールすればOKというのが多い。インストール済みだったので困った・・・。
install.packages("tidyverse", dependencies=TRUE)
とすればいいよ というのもあったが効果なし。ただ、関連パッケージをインストールしてくれるパラメータっぽいので一応付けておくことにした。
エラーを見直す
XXXを単体でインストールして見てもエラーになるが、エラー内容を見直すとmakeのビルドで失敗しているよう。さらによく見ると
ld: cannot find -lgfortran
となっていた。lgfortranがないよというエラー。これでググると、「libgfortran」をインストールすると、/usr/lib/lgfortran.so (Linux環境)ができるという情報があった。しかし、これもインストール済み、なのに該当ファイルがない。しばらく悩んでいたが、/usr/lib64の存在に気がつく。もしやこっちに入っているのではないかと見てみたら、/usr/lib64/libgfortran.so.3があった。
ln -s /usr/lib64/libgu /usr/lib/libgfortran.so
でひも付けして、再度単体でインストール、、、またも別のライブラリでエラー。ただ、似たようなエラーだったので同様の方法でリンクを作成し、再度挑戦、、、成功!
これで一気に解決と思い、
install.packages("tidyverse", dependencies=TRUE)
を実行すると、数は減ったがいくつかのパッケージがインストールできない。もう諦めようかと思った。
解決
再び単体でインストールして見ると、エラーの内容は今までとは全く違うもので、curlの場合、
------------------------- 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=...'
とわかりやすいヒントが書いてあった。早速zypperでlibcurl-develをインストールすると、curlのエラーは解決。残りのパッケージも対応するdevelを入れたら無事動いた。そして最後にtidyverseをインストールすると成功!!
結局これだけで1時間半も使ってしまった・・・。3章は改めて明日やります。
