如何在Ubuntu上安装R包“RNetCDF”和“ncdf”?

9
我希望在Ubuntu系统中使用R软件包RNetCDF和ncdf。
当我尝试执行install.packages('RNetCDF')install.packages('ncdf')时,会出现类似的错误:
...
ncdf.c:3:20: fatal error: netcdf.h: No such file or directory
compilation terminated.
make: *** [ncdf.o] Error 1
ERROR: compilation failed for package ‘ncdf’
...
Warning message:
In install.packages("ncdf") :
  installation of package ‘ncdf’ had non-zero exit status

已经从Ubuntu软件仓库安装了libnetcdf6netcdf-bin包。我还需要做其他的事情吗?


3
要编译软件包,需要安装这些软件包的“-dev”版本以获取必需的头文件。 - Justin
1
@Justin 谢谢。ncdf所需的唯一附加软件包是libnetcdf-dev - Abe
1
对于 RNetCDF,还需要安装 udunits-binlibudunits2-dev - Abe
4个回答

14
你需要安装这些软件包的 -dev 版本以获取编译该软件包所需的头文件。在此情况下,你需要安装 libnetcdf-devudunits-binlibudunits2-dev

为了安装ncdf4包(ncdf包的更新版本),我还需要运行sudo apt-get install netcdf-bin - avianattackarmada
有人知道为什么这仍然是必要的吗?自从这个答案发布已经7年了,但它仍需要某种永久性的修复。 - julianhatwell

7
在我的情况下,需要安装libudunits2-dev包。
sudo apt-get install libudunits2-dev
由于我是从源代码安装NetCDF的,所以必须手动指定lib和include文件夹的位置。
install.packages("/home/user/Downloads/RNetCDF_1.6.1-2.tar.gz", 
repos = NULL,
type="source",
dependencies=FALSE,
configure.args="--with-netcdf-include=/usr/local/netcdf-4.2.1-build/include --with-netcdf-lib=/usr/local/netcdf-4.2.1-build/lib")

1
仅为澄清,由于您最初的问题在R中,而修复是在R之外应用的。我最初尝试执行

install.packages("libnetcdf-dev"),但没有成功。

相反,在R之外执行:sudo apt-get install libnetcdf-dev
这对我有用。

1
在Ubuntu 20.04 LTS中,可以使用bash命令sudo apt install r-cran-ncdf4安装ncdf4包(取代ncdf),包括所有依赖项。同样地,对于RNetCDF,您可以使用sudo apt install r-cran-rnetcdf

1
谢谢,非常有用,解决了我安装RNetCDF的问题。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接