Linux (ubuntu) でRパッケージtidyverseをインストールしたときにでるエラーの対処法


Linux上に構築したR環境でtidyverseをインストールする際に毎度同じエラーが発生するのでその対処法を備忘録として書き残しておきます.
この記事ではUbuntuを想定します.

最初に出るエラーメッセージ

まず普通に

install.packages("tidyverse")

でパッケージのインストールを試みます.
すると下記のようなエラーメッセージが表示されます.

Warning messages:
1: In install.packages("tidyverse") :
  installation of package xml2 had non-zero exit status
2: In install.packages("tidyverse") :
  installation of package rvest had non-zero exit status
3: In install.packages("tidyverse") :
  installation of package tidyverse had non-zero exit status

どうやらxml2, rvestというパッケージのインストールが上手くいっていないことが原因のようです.

エラーの原因になっているパッケージをインストールする

ではまずxml2のインストールを試みます.

install.packages("xml2")

すると下記のようなエラーが出ます.

------------------------- ANTICONF ERROR ---------------------------
Configuration failed because libxml-2.0 was not found. Try installing:
 * deb: libxml2-dev (Debian, Ubuntu, etc)
 * rpm: libxml2-devel (Fedora, CentOS, RHEL)
 * csw: libxml2_dev (Solaris)
If libxml-2.0 is already installed, check that 'pkg-config' is in your
PATH and PKG_CONFIG_PATH contains a libxml-2.0.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=...'
--------------------------------------------------------------------

rvestでも同じエラーが出ました.
(重要) ここでエラーメッセージをちゃんと読みます.

今回はOSはUbuntuなのでdebに当てはまります.
*debの欄を見るとlibxml2-devと書いてあります.
つまりlibxml2-devをubuntuにインストールすればよさそうです.
ターミナルから以下コマンドを実行します.

bash
sudo apt install libxml2-dev

rvestパッケージも同様にエラーメッセージに従います.

これでR上でxml2やrvestパッケージもインストールできるようになり,tidyverseも無事インストールできます.