2021-05-27 R包安裝問題記錄貼

V8安裝:

需要一個(gè)靜態(tài)庫。解決方法如下:
在R命令行中輸入

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

fs安裝

最近使用R包“DiffBind”分析數(shù)據(jù),在安裝依賴包“fs”時(shí)一直報(bào)錯,命令行如下:

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路徑加入環(huán)境變量
#方法一: 
export  LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX   #但是退出當(dāng)前終端后就失效

#方法二:
 修改~/.bashrc或~/.bash_profile或系統(tǒng)級別的/etc/profile

rsvg安裝

rsvg安裝依賴librsvg庫,但是經(jīng)常報(bào)錯#error "Only <glib.h> can be included directly.",找到報(bào)錯的文件,然后vim,將#include后邊<glib/XXX.sh>全部改成<glib.sh>,然后重新編譯

*** 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安裝依賴下邊三個(gè)包,即gmp、mpfr和mpc,其中mpc和mpfr又依賴gmp,所以先安裝gmp

gmp安裝

./configure prefix=/lustre/home/acct-medzxz/medzxz/bin/ --enable-CXX
在使用configure的時(shí)候要加上 --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/
設(shè)定ld各種庫所在位置
make
make install
gcc編譯完成后要更新動態(tài)庫,替換舊版本,要不然會報(bào)錯

ninja安裝

./configure.py --bootstrap

指定pkg_config_path

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

【注意:conda install用于給本機(jī)安裝軟件(不會安裝在虛擬環(huán)境中),conda create是給虛擬環(huán)境安裝軟件】

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

報(bào)錯:

你剛剛通過conda install了pytorch,卻沒有pytorch: ModuleNotFoundError: No module named 'torch'

搜了一會,想要按照別人的答案conda update conda更新一下conda,還報(bào)錯:PackageNotInstalledError: Package is not installed in prefix.

為什么?不要在已經(jīng)進(jìn)入的虛擬環(huán)境中使用conda install !!!!!

這些可能是你應(yīng)該在base環(huán)境中安裝的軟件。你要想要conda虛擬環(huán)境中裝,那就該用pip就用pip。

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

簡單來說,就是從16年開始,R的新版本去除了一些原來包含在安裝包里的包,并默認(rèn)這些包已經(jīng)安裝在你的系統(tǒng)里,這時(shí)候,如果你用的是自己本地較新的linux/mac/windows版本,默認(rèn)已經(jīng)裝好這些包,即使沒有也能夠很快安裝或者更新這些包。但是,如果你是在服務(wù)器集群上,沒有管理員權(quán)限,需要將這些包先安裝在自己的目錄下,然后才能調(diào)用,而關(guān)鍵的問題就是調(diào)用時(shí)的環(huán)境變量如何設(shè)置。

根據(jù)這篇博文給出的解決方法,首先新建個(gè)目錄用來安裝所有需要裝的包(比如:/HOME/packages),然后將需要安裝的軟件包都裝到這個(gè)目錄下,并設(shè)置好環(huán)境變量(這個(gè)過程最關(guān)鍵),之后再configure/make/make install安裝R-3.3.0就可以了,其中還有一些細(xì)節(jié)問題下面會提到。安裝R-3.3.0過程中需要安裝的包主要有:bzip2、xz、pcre和curl,該博文還提到了zlib,不過可能我的服務(wù)器上zlib已經(jīng)更新過了,安裝過程中并沒有報(bào)錯。

1.下載和安裝bzip2:

bzip2不是標(biāo)準(zhǔn)的GNU包,根據(jù)下載的安裝文件的說明文檔,執(zhí)行以下命令:

cd ~/src

wget --no-check-certificate bzip2 website ##自己搜官網(wǎng)最新版bzip2地址,時(shí)不時(shí)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這個(gè)變量后面添加 -fPIC,否則后面安裝R的時(shí)候會報(bào)錯。

2.安裝xz包:

cd ~/src

wget --no-check-certificate XZ ##官網(wǎng)地址

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 ##官網(wǎng)下載地址

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.設(shè)置安裝好的包的環(huán)境變量(!這步最重要):
這個(gè)過程中/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"

前兩個(gè)是安裝R的“make”過程需要用到的,后兩個(gè)是“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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容