ICode9

精准搜索请尝试: 精确搜索
首页?>?系统相关> 文章详细

[R]Linux非root下bet356体育投注官网_bet356看球_bet356如何邮箱验证PMCMRplus包(待解决)

2019-10-14 23:00:30??阅读:9??来源: 互联网

标签:PMCMRplus?configure?bet356体育投注官网_bet356看球_bet356如何邮箱验证?Linux?Rmpfr?path?software?root?mpfr


PMCMRPMCMRplus是用来做秩和检验的R包,在Linux上bet356体育投注官网_bet356看球_bet356如何邮箱验证时,后面那个PMCMRplus包出现了问题。

ERROR: dependency ‘Rmpfr’ is not available for package ‘PMCMRplus’

bet356体育投注官网_bet356看球_bet356如何邮箱验证Rmpfr依赖时,出现了如下问题:

configure: error: MPFR Library must be at least version 3.0.0, see README
ERROR: configuration failed for package ‘Rmpfr’

是系统MPFR 版本太低了。MPFR是什么我也不知道,大概是和大数值相关的运算有关,而且和GMP一起常作为GCCbet356体育投注官网_bet356看球_bet356如何邮箱验证的依赖。所以重装MPFR,下载地址https://www.mpfr.org/mpfr-current/。如果是root用户,这个问题一下解决了。

sudo apt-get install libmpfr-dev #Ubuntu系列
sudo dnf install mpfr-devel #Centos系列

再重新bet356体育投注官网_bet356看球_bet356如何邮箱验证下R包就行了。但是非rootbet356体育投注官网_bet356看球_bet356如何邮箱验证依赖库很麻烦,只能源码编译bet356体育投注官网_bet356看球_bet356如何邮箱验证。

wget https://www.mpfr.org/mpfr-current/mpfr-4.0.2.tar.bz2
tar -jxvf mpfr-4.0.2.tar.bz2
mkdir mpfr4 && cd mpfr-4.0.2
./configure --prefix="/path/software/mpfr4"

没那么容易,报错了:

checking whether gcc __attribute__ ((mode (XX))) works... yes
checking for recent GMP... no
configure: error: GMP 5.0.0 or newer is required

要升级GMP版本,GMP(The GNU Multiple Precision Arithmetic Library)又叫GNU多精度算术库,是一个提供了很多操作高精度的大整数,浮点数的运算的算术库,几乎没有什么精度方面的限制,功能丰富。
于是下载GMP,bet356体育投注官网_bet356看球_bet356如何邮箱验证。下载地址:https://gmplib.org/#DOWNLOAD
好像除了6,没有其他版本。

wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
tar -jxvf gmp-6.1.2.tar.bz2
mkdir gmp6 && cd gmp-6.1.2
./configure --prefix="/path/software/gmp6"
make
make check
make install

GMP6bet356体育投注官网_bet356看球_bet356如何邮箱验证成功后,再次bet356体育投注官网_bet356看球_bet356如何邮箱验证mpfr,配置时需要指定gmp6路径:

./configure --prefix="/path/software/mpfr4" --with-gmp=/path/software/gmp6
make
make install

再重新bet356体育投注官网_bet356看球_bet356如何邮箱验证Rmpfr包,但还是报同样的错。于是将两个库加入环境中:

export LD_LIBRARY_PATH=/path/software/gmp6/lib:/path/software/mpfr4/lib:$LD_LIBRARY_PATH

问题还是存在,莫非要bet356体育投注官网_bet356看球_bet356如何邮箱验证新的gcc吗?暂时搁下了,后续再说吧,linux真的好烦,哎~~~

configure: error: MPFR Library must be at least version 3.0.0, see README
ERROR: configuration failed for package ‘Rmpfr’
* removing ‘/ldfssz1/SP_MSI/USER/pengjianxiang/software/R_packages/Rmpfr’

下次装个新的GCC试试吧。先贴个连接:linux下GCCbet356体育投注官网_bet356看球_bet356如何邮箱验证


更新

实际上我重新装了一个GCC,将其所有依赖(包括GMPMPFR)一并bet356体育投注官网_bet356看球_bet356如何邮箱验证后也没有bet356体育投注官网_bet356看球_bet356如何邮箱验证上Rmpfr包。而Rmpfr的依赖包gmp是可以装上的。
image.png

最奇怪的是,我即使是指定MPFR库和GMP库来bet356体育投注官网_bet356看球_bet356如何邮箱验证这个R包(包括GCC自动bet356体育投注官网_bet356看球_bet356如何邮箱验证的依赖和我之前手动bet356体育投注官网_bet356看球_bet356如何邮箱验证的这两个库)也链接不上。

我是怎么指定依赖库的呢?经同事指点,找到了configure.args参数。指定库的头文件和库文件。

#bet356体育投注官网_bet356看球_bet356如何邮箱验证gcc时自动bet356体育投注官网_bet356看球_bet356如何邮箱验证的依赖库
install.packages("Rmpfr",configure.args = c(Rmpfr = "--with-mpfr-include=/path/to/mpfr-3.1.4/include \\
--with-mpfr-lib=/path/to//mpfr-3.1.4/lib"))

#手动bet356体育投注官网_bet356看球_bet356如何邮箱验证的依赖库
install.packages("Rmpfr",configure.args = c(Rmpfr = "--with-mpfr-include=/path/to//mpfr4/include \\
--with-mpfr-lib=/path/to//mpfr4/lib"))

结果还是链接到了原来旧版本的MPFR上。但这个人说他可以https://stackoverflow.com/questions/37287226/pass-configure-arguments-to-install-packages-in-r
,但我的就是连接不上。
image.png

同样,下载源码,在终端命令行下bet356体育投注官网_bet356看球_bet356如何邮箱验证也报相同的错误。

R CMD INSTALL  --configure-args="--with-mpfr-include=/ldfssz1/SP_MSI/USER/pengjianxiang/software/mpfr-3.1.4/include \\
--with-mpfr-lib=/ldfssz1/SP_MSI/USER/pengjianxiang/software/mpfr-3.1.4/lib" Rmpfr_0.7-2.tar.gz

最后我试着解压Rmpfr源码,直接编译。configure中有--with-mpfr-include--with-mpfr-lib参数,我指定库路径进行编译准备,可以通过。

image.png
但生成的不是Makefile文件,而是src目录下的Makevars等文件。我也不知道能不能这么弄,反正不能make,最后也不能编译。
image.png
还有个方法试下,就是用conda了。

Ref:https://blog.csdn.net/u013310119/article/details/81081125
https://www.jianshu.com/p/bc909ce2e424
install-gcc-5.4-without-root



标签:PMCMRplus,configure,bet356体育投注官网_bet356看球_bet356如何邮箱验证,Linux,Rmpfr,path,software,root,mpfr

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有