Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installation of package ncdf fails due to missing header although it's there

Tags:

r

ubuntu

I'm trying to install the r package ncdf on an Ubuntu 10.04 server:

install.packages("ncdf", type = "source")
Installing package into ‘/home/me/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/src/contrib/ncdf_1.6.6.tar.gz'
Content type 'application/x-gzip' length 79403 bytes (77 Kb)
opened URL
==================================================
downloaded 77 Kb

* installing *source* package ‘ncdf’ ...
** package ‘ncdf’ successfully unpacked and MD5 sums checked
checking for nc-config... no
checking for gcc... gcc -std=gnu99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -std=gnu99 -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking netcdf.h usability... no
checking netcdf.h presence... no
checking for netcdf.h... no
configure: error: netcdf header netcdf.h not found
ERROR: configuration failed for package ‘ncdf’
* removing ‘/home/me/R/x86_64-pc-linux-gnu-library/3.0/ncdf’
Warning in install.packages :
  installation of package ‘ncdf’ had non-zero exit status

I also downloaded the source package and tried to install in the shell, but got the same result.

wget http://cran.r-project.org/src/contrib/ncdf_1.6.6.tar.gz
R CMD INSTALL ncdf_1.6.6.tar.gz 

Obviously, the installer doesn't find the correct header file. So I searched the file manually and found it:

root@fourier:/usr/include# ls -ahl netcdf.h
-rw-r--r-- 1 root root 30K 2009-12-22 04:47 netcdf.h 

Packages netcdf-bin, netcdf-dbg, netcdf-doc, libnetcdf-dev and libnetcdf4 are all properly installed. apt-get is up to date. This is my session info:

R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
[1] C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.0.1

How can I persuade the R installer to use the header file located under /usr/include?

like image 857
Beasterfield Avatar asked Jun 10 '13 16:06

Beasterfield


2 Answers

You need to look at the configure.in script to see exactly what it tests for. Maybe it is expecting netcdf.h in a subdirectory rather than directly in /usr/include.

I think I have built this in the past. I could take another look later.

like image 60
Dirk Eddelbuettel Avatar answered Nov 14 '22 23:11

Dirk Eddelbuettel


Without downloading source, you just need to set some environment variables. For me, this was

 export NETCDF_INCLUDE=/usr/include

After doing this, install.packages("ncdf") worked.

This is described in the INSTALL file.

like image 23
petrelharp Avatar answered Nov 15 '22 00:11

petrelharp