正常没特殊奇奇怪怪的情况,一般很快可以安装成功
>1 安装R软件失败
正常在Linux中安装R语言可以通过conda安装:
(1)conda create -n r4.3 ##创建环境
(2)conda activate r4.3 ##激活环境
(3)conda install -c conda-forge r-base=4.3.0 ##安装
但是失败了,具体报错不记得了,忘记截图了。因此换一种R方式,本地安装。
本地安装,具体过程:
(1)进入R官网CRAN - Mirrors,直接下载想要的安装包压缩包
(2)安装
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.3.0.tar.gz
tar -zxvf R-4.3.0.tar.gz
cd R-4.3.0
./configure --with-pcre1
make
报错:
error2: PCRE2 library and headers are required, or use --with-pcre1 and PCRE >= 8.32 with UTF-8 support
error2: --with-x=yes (default) and X11 headers/libs are not available
解决办法:
根据提示添加参数
./configure --prefix=path/R-4.3.0 --with-x=no --with-pcre1
核心就是仔细根据提示查看,他说缺什么我们就按照提示做什么
正常安装成功!
>2 Biomanager安装R包
比如安装ANCOM- BC,该软件依赖的比较多,总共50多个,其实顺利的话,估计1两个小时就能安装完成,but!!!!,我不顺利,所以就只能一个包一个包来安装,确定具体那个包安装错误,说来也是惭愧,自己断断续续安装了快俩月;
当时安装的时候,每次状态,我的状态就是跟个土拨鼠一样
,现在安装完了之后,要整理一下安装过程遇到的坑,突然发现好像也没啥很困难的地方,可能是自己的脑子不好使,不管怎样还是整理一下吧,毕竟走了一遭!
1)报错:
(1)00LOCK-htmlTable文件找不到
ERROR: failed to lock directory ‘/path/conda/miniconda3/envs/r4.3/lib/R/library’ for modifying
解决办法:
直接删除直接删除临时文件夹就可以解决
2)报错
大部分编译文件找不到
sh: x86_64-conda-linux-gnu-cc
解决办法:
在r4.3/bin文件夹下找到对应文件,在r4.3/lib/R/etc中Makeconf文件进行更改
3)报错
CMake Error at CMakeLists.txt:15 (cmake_minimum_required):
CMake 3.2 or higher is required. You are running version 2.8.12.2
R包安装过程需要编译安装包,可能因为环境问题,直接调用root用户下的cmake,但是版本太低。
解决办法:
重新安装cmake编译器
安装直接去cmake官网(CMake - Upgrade Your Software Build System),找到linux版本
右键复制下载链接
wget https://github.com/Kitware/CMake/releases/download/v3.26.4/cmake-3.26.4.tar.gz
tar -zxvf cmake-3.26.4.tar.gz
在当前执行shell窗口下添加cmake环境
export PATH=/USER/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/:$PATH
alias cmake=/USER/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/cmake
4)报错
BiocManager::install("nloptr")
该报错是由于重新更新了cmake而引发的报错问题
cannot find nlopt/lib/libnlopt.a: No such file or directory
collect2: error: ld returned 1 exit status
解决办法
将最新下载的cmake 软链到r安安装路径的bin目录下
重新配置环境变量
export PATH=/xxx/r4.3/cmake-3.26.1-linux-x86_64/bin/:$PATH
alias cmake=/xxx/r4.3/bin/cmake
5)报错
ft2build.h: No such file or directory
解决办法
在r4.3/lib/R/etc/Makeconf文件中最后一行添加freetype2的绝对路径
export C_INCLUDE_PATH=/path/miniconda3/envs/r4.3/include/freetype2
export CPLUS_INCLUDE_PATH=/path/conda/miniconda3/envs/r4.3/include/freetype2
6)报错
hb-ft.h: No such file or directory
解决办法
其实在使用 pkg-config 过程中遇到库找不到的情况,不一定是外部库没有安装,默认情况下 pkg-config 的查找路径为 /usr/lib/pkgconfig 和 /usr/share/pkgconfig,可以通过环境变量 PKG_CONFIG_PATH 在额外指定 pkg-config 的查找路径,比如
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:${PKG_CONFIG_PATH}"
export PKG_CONFIG_PATH="/usr/local/opt/jpeg-turbo/lib/pkgconfig:${PKG_CONFIG_PATH}"
7)报错
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘png’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/path/conda/miniconda3/envs/r4.3/lib/R/library/00LOCK-png/00new/png/libs/png.so':
/path/conda/miniconda3/envs/r4.3/lib/R/library/00LOCK-png/00new/png/libs/png.so: undefined symbol: png_read_update_info
Error: loading failed
Execution halted
ERROR: loading failed
解决办法
Sys.getenv("LD_LIBRARY_PATH")
##[1] "/PUBLIC/software/public/System/boost_1_55_0/lib:/TJPROJ13/GB_MICRO/USER/cailianhe/usr/lib64:/opt/gridengine/lib/lx-amd64:/opt/openmpi/lib"
##设置LD_LIBRARY_PATH路径
export LD_LIBRARY_PATH=/opt/au1200/bin
export LD_LIBRARY_PATH=/path/conda/miniconda3/envs/r4.3/lib
7)报错
configure: error: Cannot find cairo.h! Please install cairo
解决办法;
export PATH=/USER/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/:$PATH
alias cmake=/USER/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/cmake
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:${PKG_CONFIG_PATH}"
Sys.getenv("LD_LIBRARY_PATH")
##[1] "/PUBLIC/software/public/System/boost_1_55_0/lib:/TJPROJ13/GB_MICRO/USER/cailianhe/usr/lib64:/opt/gridengine/lib/lx-amd64:/opt/openmpi/lib"
##设置LD_LIBRARY_PATH路径
export LD_LIBRARY_PATH=/opt/au1200/bin
export LD_LIBRARY_PATH=/USER/path/conda/miniconda3/envs/r4.3/lib
8)报错
ERROR: configuration failed for package ‘gmp’
解决办法
找到gmp包所在路径,重新配置环境变量
export C_INCLUDE_PATH=/path/conda/miniconda3/pkgs/gmp-6.2.1-h58526e2_0/include:/MyLib
export LD_LIBRARY_PATH=/home/myname/gsl2.4_install/lib:$LD_LIBRARY_PATH
或者在安装的时候指定路径
install.packages("gmp", configure.args = c("--with-gmp-include= /path/conda/miniconda3/pkgs/gmp-6.2.1-h58526e2_0/include", "--with-gmp-lib=/path/conda/miniconda3/pkgs/gmp-6.2.1-h58526e2_0/lib"))
9)报错
ERROR: configuration failed for package ‘Rmpfr’
解决办法:
找到gsl安装成功的路径,比如:
/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/
export PATH=$PATH:/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/bin
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/lib
export GSL_LD=/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/lib
总结
安装过程大部分出现都是某个编译软件找不到,如以下等等,大部分都是因为在R安装过程中,系统默认在root用户环境下找相应的编译软件,或者安装包等,所以主要指定其所需文件的具体位置就可以了。
package or namespace load failed for ‘gert’ in dyn.load
checking for __gmpz_init in -lgmp... no
以下几个命令可以解决大部分问题;
export PATH=/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/:$PATH
alias cmake=/path/conda/miniconda3/envs/r4.3/cmake-3.26.1-linux-x86_64/bin/cmake
export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig:${PKG_CONFIG_PATH}"
export LD_LIBRARY_PATH=/path/conda/miniconda3/envs/r4.3/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/include
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/lib
export GSL_LD=/path/conda/miniconda3/pkgs/gsl-2.7-he838d99_0/lib
Sys.getenv("LD_LIBRARY_PATH")
CFLAGS=-I/usr/include -I/path/include
除此之外,R中安装失败,也可以尝试利用conda安装R包,有时候还挺顺利的