2021-05-27 R包安装问题记录贴

V8安装:

需要一个静态库。解决方法如下:
在R命令行中输入

 Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1)
install.packages("V8")

fs安装

最近使用R包“DiffBind”分析数据,在安装依赖包“fs”时一直报错,命令行如下:

conda activate chipseq1 
R
library(BiocManager)
BiocManager::install("fs")

错误及解决方法如下:

src/.libs/libuv_la-fs-poll.o: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:1745: libuv.la] Error 1
make[1]: Leaving directory '/tmp/RtmpvaTCs1/R.INSTALL47746c681b53/fs/src/libuv-1.38.1'
make: *** [Makevars:35: libuv-1.38.1/.libs/libuv.a] Error 2
ERROR: compilation failed for package ‘fs’
* removing ‘/lustre/home/acct-medzxz/medzxz/miniconda3/envs/chipseq1/lib/R/library/fs’
ERROR: dependency ‘fs’ is not available for package ‘batchtools’
* removing ‘/lustre/home/acct-medzxz/medzxz/miniconda3/envs/chipseq1/lib/R/library/batchtools’

The downloaded source packages are in
    ‘/tmp/Rtmp4wNQWj/downloaded_packages’
Updating HTML index of packages in '.Library'
Making 'packages.html' ... done
Warning messages:
1: In .inet_warning(msg) :
  installation of package ‘fs’ had non-zero exit status
2: In .inet_warning(msg) :
  installation of package ‘batchtools’ had non-zero exit status

主要是编译错误,缺少libuv库,或者libuv库编译错误,我下载了libuv,然后按照流程编译

git clone [https://github.com/libuv/libuv.git](https://github.com/libuv/libuv.git) 
cd libuv/
 ./autogen.sh 
./configure --prefix=/your/path/  ##这里不指定路径后边编译会出错,至少我是这样
make
make install
####编译完成后,将lib路径加入环境变量
#方法一: 
export  LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX   #但是退出当前终端后就失效

#方法二:
 修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile

rsvg安装

rsvg安装依赖librsvg库,但是经常报错#error "Only can be included directly.",找到报错的文件,然后vim,将#include后边全部改成,然后重新编译

*** Rebuilding template files ***
cd . && gtkdoc-mktmpl --module=rsvg
/bin/sh: gtkdoc-mktmpl: command not found
make[1]: *** [tmpl-build.stamp] Error 127
make[1]: Leaving directory `/lustre/home/acct-medzxz/medzxz/software/libs/librsvg-2.9.5/doc'
make: *** [install-recursive] Error 1

gcc安装

gcc安装依赖下边三个包,即gmp、mpfr和mpc,其中mpc和mpfr又依赖gmp,所以先安装gmp

gmp安装

./configure prefix=/lustre/home/acct-medzxz/medzxz/bin/ --enable-CXX
在使用configure的时候要加上 --enable-cxx命令,否则不能使用c++库gmpxx.h
然后
make
make check
最后
make install
就安装完成了

MPFR和MPC配置安装

./configure prefix=/lustre/home/acct-medzxz/medzxz/bin/ --with-gmp-include=/lustre/home/acct-medzxz/medzxz/bin/include/ --with-gmp-lib=/lustre/home/acct-medzxz/medzxz/bin/lib
--with...后边要加绝对路径,指定gmp位置

然后 make
make check
make install

gcc编译

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lustre/home/acct-medzxz/medzxz/bin/lib/
设定ld各种库所在位置
make
make install
gcc编译完成后要更新动态库,替换旧版本,要不然会报错

ninja安装

./configure.py --bootstrap

指定pkg_config_path

export PKG_CONFIG_PATH=/lustre/home/acct-medzxz/medzxz/bin/lib/pkgconfig

【注意:conda install用于给本机安装软件(不会安装在虚拟环境中),conda create是给虚拟环境安装软件】

[ conda isntall 找不到的包你可以试试 pip]

报错:

你刚刚通过conda install了pytorch,却没有pytorch: ModuleNotFoundError: No module named 'torch'

搜了一会,想要按照别人的答案conda update conda更新一下conda,还报错:PackageNotInstalledError: Package is not installed in prefix.

为什么?不要在已经进入的虚拟环境中使用conda install !!!!!

这些可能是你应该在base环境中安装的软件。你要想要conda虚拟环境中装,那就该用pip就用pip。

checking whether bzip2 support suffices ...congifure: error: bzip2 library and headers are required
看问题描述貌似bzip2版本太老了,新的R-4.1.2不能用。

简单来说,就是从16年开始,R的新版本去除了一些原来包含在安装包里的包,并默认这些包已经安装在你的系统里,这时候,如果你用的是自己本地较新的linux/mac/windows版本,默认已经装好这些包,即使没有也能够很快安装或者更新这些包。但是,如果你是在服务器集群上,没有管理员权限,需要将这些包先安装在自己的目录下,然后才能调用,而关键的问题就是调用时的环境变量如何设置。

根据这篇博文给出的解决方法,首先新建个目录用来安装所有需要装的包(比如:/HOME/packages),然后将需要安装的软件包都装到这个目录下,并设置好环境变量(这个过程最关键),之后再configure/make/make install安装R-3.3.0就可以了,其中还有一些细节问题下面会提到。安装R-3.3.0过程中需要安装的包主要有:bzip2、xz、pcre和curl,该博文还提到了zlib,不过可能我的服务器上zlib已经更新过了,安装过程中并没有报错。

1.下载和安装bzip2:

bzip2不是标准的GNU包,根据下载的安装文件的说明文档,执行以下命令:

cd ~/src

wget --no-check-certificate bzip2 website ##自己搜官网最新版bzip2地址,时不时IP就改了

tar xzvf bzip2-1.0.6.tar.gz

cd bzip2-1.0.6

make -f Makefile-libbz2_so

make clean

make

make install PREFIX=/HOME/packages
注意:这里下载完bzip2后,需要修改Makefile文件,在CFLAGS这个变量后面添加 -fPIC,否则后面安装R的时候会报错。

2.安装xz包:

cd ~/src

wget --no-check-certificate XZ ##官网地址

tar xzvf xz-5.2.2.tar.gz

cd xz-5.2.2

./configure --prefix=/HOME/packages

make -j3

make install
3.安装pcre包:

cd ~/src

wget --no-check-certificate pcre ##官网下载地址

tar xzvf pcre-8.38.tar.gz

cd pcre-8.38

./configure --enable-utf8 --prefix=/HOME/packages

make -j3

make install
4.安装curl包:

cd ~/src

wget --no-check-certificate https://curl.haxx.se/download/curl-7.47.1.tar.gz

curl - Download

tar xzvf curl-7.47.1.tar.gz

cd curl-7.47.1

./configure --prefix=/HOME/packages

make -j3

make install
5.设置安装好的包的环境变量(!这步最重要):
这个过程中/HOME/packages/要替换为你安装文件的目录,譬如我安装在/dssg/home/acct-medzxz/medzxz/bin/下,以下步骤中/HOME/packages/全部替换为/dssg/home/acct-medzxz/medzxz/bin/。切记 切记 切记

export PATH=/HOME/packages/bin:$PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH

export CFLAGS="-I/HOME/packages/include"

export LDFLAGS="-L/HOME/packages/lib"

前两个是安装R的“make”过程需要用到的,后两个是“configure”过程需要用到的。

6.最后就是安装R-4.1.2:

cd ~/src/R-4.1.2

mkdir builddir

cd builddir

../configure --prefix=/HOME/packages/R-4.1.2

make

make install
等待安装完成,就可以开始愉快地使用新的R了...
blog.csdn.net/flashan_shensanceng/article/details/122531181

你可能感兴趣的:(2021-05-27 R包安装问题记录贴)