无法在Linux中安装R tseries,quadprog,xts软件包

时间:2017-07-25 00:53:10

标签: r linux yum install.packages

我使用的是R版本3.4.0

我试图在linux机器上安装tseries包:

install.packages('https://cran.cnr.berkeley.edu/src/contrib/tseries_0.10-42.tar.gz',dependencies = TRUE,repos = NULL,type ="source")

It gives error:
ERROR: compilation failed for package 'xts'
* removing '/usr/lib64/R/library/xts'
ERROR: dependency 'xts' is not available for package 'TTR'
* removing '/usr/lib64/R/library/TTR'
ERROR: dependencies 'xts', 'TTR' are not available for package 'quantmod'
* removing '/usr/lib64/R/library/quantmod'
ERROR: dependencies 'quadprog', 'quantmod' are not available for package 'tseries'
* removing '/usr/lib64/R/library/tseries'

1: In install.packages("tseries", dependencies = TRUE) :
  installation of package 'quadprog' had non-zero exit status
2: In install.packages("tseries", dependencies = TRUE) :
  installation of package 'xts' had non-zero exit status
3: In install.packages("tseries", dependencies = TRUE) :
  installation of package 'TTR' had non-zero exit status
4: In install.packages("tseries", dependencies = TRUE) :
  installation of package 'quantmod' had non-zero exit status
5: In install.packages("tseries", dependencies = TRUE) :
  installation of package 'tseries' had non-zero exit status

然后我尝试使用以下方法安装quadprog:

install.packages('https://cran.cnr.berkeley.edu/src/contrib/quadprog_1.5-5.tar.gz',dependencies = TRUE,repos = NULL,type ="source")

它给出错误:

/usr/bin/ld: cannot find -lgfortran
collect2: error: ld returned 1 exit status
make: *** [quadprog.so] Error 1
ERROR: compilation failed for package 'quadprog'
* removing '/usr/lib64/R/library/quadprog'

请帮助我该怎么做。我在安装这些软件包时遇到了困难。

我使用以下方式安装了R:

sudo yum -y install R-core R-devel

我尝试使用yum install gcc-gfortran

安装gfortran

它说:已经安装了包gcc-gfortran-4.4.7-18.el6.x86_64和最新版本 什么都不做

3 个答案:

答案 0 :(得分:3)

这里的问题是Fortran编译器(gfortran)和GCC编译器驱动程序(gcc)不同步:gfortran是版本4.4.7,{{1}是版本4.7.2。这意味着他们使用不同的目录来存储文件,gcc无法找到gcc包安装的libgfortran.so符号链接。

解决方案是将这两个编译器带到同一版本。这可以通过调整gcc-gfortran变量(基于其他讨论,PATH这里不是指gcc),卸载提供此/usr/bin/gcc命令的软件集合来实现(使用gcc,或使用yum remove devtoolset-1.1-gcc为相同的软件集合安装Fortran组件。

我最好的猜测是你的yum install devtoolset-1.1-gcc-gfortran包来自这个存储库:

所以你也可以使用那里的devtoolset-1.1-gcc包(并选择gfortran包,以避免类似的问题。)

答案 1 :(得分:0)

在花了相同的时间花了相同的错误之后,对我有用的唯一解决方案是重新安装所有R组件。

为了完整性,我所做的是删除所有R组件: dpkg -l | grep ^ii | awk '$2 ~ /^r-/ { print $2 }' | sudo xargs apt-get remove --purge -y(从here获得)

再次重新安装R:sudo apt-get install r-base r-base-dev

答案 2 :(得分:0)

我通过使用以下命令从源代码重新安装R来解决此问题:

make install rhome=/usr