Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Linux中安装R tseries、quadprog、xts软件包_R_Linux_Yum_Install.packages - Fatal编程技术网

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

无法在Linux中安装R tseries、quadprog、xts软件包,r,linux,yum,install.packages,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 '/

我使用的是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安装gcc gfortran

它说:包gcc-gfortran-4.4.7-18.el6.x86_64已经安装并且是最新版本
没什么可做的。这里的问题是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
)来实现,或者使用
yum安装devtoolset-1.1-gcc-gfortran
为同一软件集合安装Fortran组件

我猜测您的
devtoolset-1.1-gcc
包来自此存储库:


因此,您也可以从那里使用
gfortran
软件包(并选择
c++
软件包,以避免类似的问题)。

在花了相当长的时间处理相同的错误后,唯一对我有效的解决方案是重新安装所有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

我通过从源代码处重新安装R修复了此问题,使用:

make install rhome=/usr

只需阅读错误消息:
找不到-lgfortran
。因此,安装一个Fortran编译器,大概是与您的
gcc
g++
二进制文件相同版本的
gfortran
。如何安装,请告诉我。我有gcc(gcc)4.7.2 20121015(Red Hat 4.7.2-5)请检查编辑。我试过安装gfortranSo,你有Fortran编译器。您仍然需要Fortran
-dev
包,该包提供了您未能链接到的Fortran库。我不知道RedHat/CentOS怎么称呼它——在Debian下,
gcc-6
etc pp的libgfortran-6-dev将是
libgfortran-6-dev。请帮我找到RedHat/CentOS的。我找不到itLet,是否说我不想卸载并使用PATH变量修复此问题?我该怎么做?您需要找出
devtoolset-1.1-gcc
来自何处,并从同一来源安装devtoolset-1.1-gcc-gfortran。
rpm-qi devtoolset-1.1-gcc
可能会告诉您是谁构建了这个软件包。我认为它来自于yum-y install centos6.iuscomunity.org/..\&yum-y install python36u\&yum-y installpython36u-devel\&yum-y安装python36u-pip\&yum-y安装python36u-tkinter.x86_64您能告诉我如何从同一源安装devtoolset-1.1-gcc-gfortran吗?