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.
Reference: https://www.centos.org/forums/viewtopic.php?t=5933