[R]Linux非root下安装PMCMRplus包(待解决)

PMCMRPMCMRplus是用来做秩和检验的R包,在Linux上安装时,后面那个PMCMRplus包出现了问题。

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

安装Rmpfr依赖时,出现了如下问题:

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

是系统MPFR 版本太低了。MPFR是什么我也不知道,大概是和大数值相关的运算有关,而且和GMP一起常作为GCC安装的依赖。所以重装MPFR,下载地址https://www.mpfr.org/mpfr-current/。如果是root用户,这个问题一下解决了。

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

再重新安装下R包就行了。但是非root安装依赖库很麻烦,只能源码编译安装。

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,安装。下载地址: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

GMP6安装成功后,再次安装mpfr,配置时需要指定gmp6路径:

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

再重新安装Rmpfr包,但还是报同样的错。于是将两个库加入环境中:

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

问题还是存在,莫非要安装新的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下GCC安装


更新

实际上我重新装了一个GCC,将其所有依赖(包括GMPMPFR)一并安装后也没有安装上Rmpfr包。而Rmpfr的依赖包gmp是可以装上的。

最奇怪的是,我即使是指定MPFR库和GMP库来安装这个R包(包括GCC自动安装的依赖和我之前手动安装的这两个库)也链接不上。

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

#安装gcc时自动安装的依赖库
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"))

#手动安装的依赖库
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
,但我的就是连接不上。

同样,下载源码,在终端命令行下安装也报相同的错误。

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参数,我指定库路径进行编译准备,可以通过。


但生成的不是Makefile文件,而是src目录下的Makevars等文件。我也不知道能不能这么弄,反正不能make,最后也不能编译。

还有个方法试下,就是用conda了。

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

原文地址:https://www.cnblogs.com/jessepeng/p/11674783.html

时间: 2024-11-11 03:23:44

[R]Linux非root下安装PMCMRplus包(待解决)的相关文章

linux非root用户安装ncurses-devel依赖,解决configure: error: No curses library functions found

很明显,如果我们通过yum或rpm下载安装,始终无法绕开root用户,除非我们不用yum或rpm.是的,我们直接下载源码包,到ftp.gnu.org/pub/gnu/ncurses/我们可以下到最新的源码包ncurses-6.1.tar.gz,通过rz上传至非root用户wlf的soft目录下,回到根目录,我们把源码包解压: $ tar xzvf soft/ncurses-6.1.tar.gz 进入解压后目录,执行软件配置: $ cd ncurses-6.1 $ ./configure --pr

Linux 非root 用户安装openresty

首先得用root用户安装依赖包 yum install perl yum install gcc yum install gcc-c++ yum install zlib yum install zlib-devel; 接着 安装openresty 1,下载openssl wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz 解压openssl tar -zvxf openssl-1.0.2k.tar.gz cd openssl-1.

linux 非root 用户安装redis 安装

1,在Linux环境上下载gcc,通过源码安装得通过cc编译器进行安装.这时候得下载gcc.这时候使用root用户进行安装. yum -y install  gcc 2,接着编译需要使用jemalloc.得下载jemalloc 编译.使用yum安装得添加一下仓库源.改完仓库源,这时候就可以使用 yum install  jemalloc 下面这种方式是使用jemalloc源码包来进行编译. (1)下载源码安装包. wget   https://github.com/jemalloc/jemall

Linux非root用户安装jdk和tomcat

转载自:http://blog.csdn.net/wuyigong111/article/details/17410661,进行部分修改 创建一个用户 sgmm,并在其用户目录里面安装 jdk和tomcat,安装过程如下. 一.增加 sgmm 用户和 sgmm 组 [[email protected]_test ~]# groupadd sgmm [[email protected]_test ~]# useradd -d /home/sgmm -g sgmm -m sgmm 二.为sgmm用户

linux非root用户安装nginx

先到官网http://nginx.org/en/download.html下载最新稳定版源码包,目前是1.16.1: 下完后通过rz上传至wlf用户soft目录下,退回上一级目录解压: $ cd soft $ rz -y rz waiting to receive. 开始 zmodem 传输. 按 Ctrl+C 取消. 100% 1008 KB 1008 KB/s 00:00:01 0 Errors $ cd .. $ tar xzvf soft/nginx-1.16.1.tar.gz 开始编译

Linux环境下非root用户安装Python及相关库

以前在使用python的时候,都是使用root用户安装好的全局python,现在,因为root用户安装的Python版本太低,同时自己没有root权限去对全局Python升级,所以要在非root用户下安装自己指定的Python.因此,就重新整理了一份如何在Linux环境下使用非root用户安装python及其相关的库,以备不时之需. 安装python python版本库https://www.python.org/ftp/python/,此处我选择2.7.5版本的,在安装python的时候,使用

Linux下非root用户安装软件

下面简要说一下Linux下非root用户安装软件的一般流程:1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码.2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可3. 切换到解压后的目录,运行 ./configure.其选项可以通过 ./configure –help来获取,非root用户下最重要的应该是定义安装目录,即应该定义 ./configure –prefix=/path/to/bin, 对于一些依赖库,可能还需要使用

linux下使用非root账号安装zabbix-client

linux下使用非root账号安装zabbix-client使用非root账号rusky登录:[[email protected]]#tar zxvf zabbix-2.4.5.tar.gz #cd zabbix-2.4.5 编译安装:# ./configure --prefix=/home/rusky/zabbix --enable-agent# make install 修改配置文件: cd /home/rusky/zabbix$ lsbin etc lib sbin sharevi ./e

CentOS(Linux)下安装dmidecode包

安装代码: yum install dmidecode 安装完成后,查看总体信息: dmidecode 查看服务器类型,测试环境为DELL R610: dmidecode -s system-product-name 确认是否使用MegaRAID卡: dmidecode |grep "RAID" CentOS(Linux)下安装dmidecode包