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

问题描述 投票:0回答:5

我使用的是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 安装 R-core R-devel

我尝试使用以下命令安装 gfortran:

yum install gcc-gfortran

它说:软件包 gcc-gfortran-4.4.7-18.el6.x86_64 已安装且最新版本 没什么可做的

r linux yum install.packages
5个回答
3
投票

这里的问题是 Fortran 编译器 (

gfortran
) 和 GCC 编译器驱动程序 (
gcc
) 不同步:
gfortran
是版本 4.4.7,
gcc
是版本 4.7.2。 这意味着它们使用不同的目录来存储文件,并且
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
软件包(也可以选择
c++
软件包,以避免类似的问题)。


2
投票

在同样的错误上花费了相当长的时间后,对我来说唯一有效的解决方案是重新安装所有 R 组件。

为了完整性,我所做的是删除所有 R 组件:

dpkg -l | grep ^ii | awk '$2 ~ /^r-/ { print $2 }' | sudo xargs apt-get remove --purge -y
(从这里获得)

并再次重新安装 R:

sudo apt-get install r-base r-base-dev


1
投票

由于编译错误,我也无法在 Ubuntu 上安装quadprog。 运行

sudo apt install zlib1g-dev
并重新启动 R 解决了问题。


0
投票

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

make install rhome=/usr

0
投票

添加 GCC 和 gfortran 编译器仍然没有为我解决这个问题。 BLAS 和 LAPACK 是关键。

在 Ubuntu / Debian 上尝试 sudo apt install libblas-dev liblapack-dev。

© www.soinside.com 2019 - 2024. All rights reserved.