Short story:
before installing ncdf in R intall in your linux libnetcdf-dev and netcdf-bin
Long story:
I found a problem installing the R package ncdf:
> install.package('ncdf')
|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 ‘/usr/local/lib/R/site-library/ncdf’
|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 ‘/usr/local/lib/R/site-library/ncdf’
Well I though, this is the classical "install the -devel package first" but alas, I have the netcdf.h in /usr/include !!! and I did already intalled the libnetcdf-dev package in my biolinux-7 (ubuntu 12.04)
I went to the tmp folder where the R packages was downloaded and tried to install it by hand. I read the INSTALL file and tried adding environmental variables:
The location of the netcdf library can be specified by the environment
variable NETCDF_LIB or the configure argument --with-netcdf-lib.
variable NETCDF_LIB or the configure argument --with-netcdf-lib.
or adding FLAGS to ./configure
LDFLAGS=-L/usr/lib CPPFLAGS=-I/usr/include sh configure
Nothing was working.
Finally I remembered that at the beginning of the INSTALL file it is mentioned that the program nc-config is a helper for the installer to find out the location of the dev files, but as it was not installed and it is said in this file that is optional I skipped this part during my first trials. After failed several times to find out how to pass the paths of the dev files I decided to give a try to the nc-config route. I searched for it and here http://cirrus.ucsd.edu/~pierce/ncdf/install_ncdf_v4.html I read:
The only issue is getting the libraries right. All the libraries used by the netcdf library, version 4, must be visible to the R software. To get a list of what libraries must be visible, run "nc-config --libs" (note: a recent version of the netcdf library, version 4, must be installed correctly for this command to work).
But I did not have nc-config
root@pmg-analysis:/tmp/RtmpiNeIMZ/downloaded_packages/ncdf# nc-config --libs
The program 'nc-config' is currently not installed. You can install it by typing:
apt-get install netcdf-bin
So I installed it
root@pmg-analysis:/tmp/RtmpiNeIMZ/downloaded_packages/ncdf# apt-get install netcdf-bin
And then knowing that the R package ncdf uses this program for finding the headers and libs for netcdf, I run the install.package in R:
>install.packages('ncdf')
Installing package into ‘/home/pmg/R/x86_64-pc-linux-gnu-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://cran.univ-paris1.fr/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... /usr/bin/nc-config
configure: creating ./config.status
config.status: creating src/Makevars
** libs
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/include -fpic -O3 -pipe -g -c ncdf.c -o ncdf.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/include -fpic -O3 -pipe -g -c ncdf2.c -o ncdf2.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -I/usr/include -fpic -O3 -pipe -g -c ncdf3.c -o ncdf3.o
gcc -std=gnu99 -shared -o ncdf.so ncdf.o ncdf2.o ncdf3.o -L/usr/lib -lnetcdf -L/usr/lib/R/lib -lR
installing to /home/pmg/R/x86_64-pc-linux-gnu-library/3.0/ncdf/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (ncdf)
Job done!!