This post is primarily written to remind myself, an Ubuntu user, to figure out how to find what RPM package provides a file — for example a header file.
Today, I’m trying to compile and install R 3.1.3 on CentOS 6 from source code. This R installation is one of the requirements to install Tessera stack. The instruction from the installation page is:
sudo yum install blas blas-devel lapack lapack-devel wget http://cran.r-project.org/src/base/R-3/R-3.1.3.tar.gz tar zxvf R-3.1.3.tar.gz cd R-3.1.3 ./configure --with-blas --with-lapack --with-x --enable-R-shlib make sudo make install
Unfortunately, the process failed with ./configure with the complain about missing readline library. To fix it, I had to install readline-devel package.
sudo yum install blas blas-devel lapack lapack-devel readline-devel
After that, I re-ran the ./configure. This time it still complains that some X11 header files are missing, one of them is: Intrinsic.h.
Let’s find out what package provides this file:
# yum provides \*/Intrinsic.h Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirror.digitalpacific.com.au * extras: centos.mirror.digitalpacific.com.au * updates: centos.mirror.digitalpacific.com.au libXt-devel-1.1.4-6.1.el6.x86_64 : X.Org X11 libXt development package Repo : base Matched from: Filename : /usr/include/X11/Intrinsic.h libXt-devel-1.1.4-6.1.el6.i686 : X.Org X11 libXt development package Repo : base Matched from: Filename : /usr/include/X11/Intrinsic.h
Ah ha, so let’s install libXt-devel. This time, I was able to configure, make and install the R.