2016-04-15 102 views
2

我在安装Anaconda软件库中不可用的R软件包时遇到困难。到目前为止,我的尝试可以在这里找到How to install R-packages not in the conda repositories?构建conda的R软件包的错误

目前,我试图通过以下的标题下,this article说明构建畅达[R包打造的R-包rafalibconda

第一部分正常工作。

conda skeleton cran rafalib 

日期:

Tip: install CacheControl to cache the CRAN metadata 
Fetching metadata from http://cran.r-project.org/ 
Writing recipe for rafalib 
Done 

构建命令运行到错误

conda build r-rafalib 

日期:

Removing old build environment 
Removing old work directory 
BUILD START: r-rafalib-1.0.0-r3.2.2_0 
Using Anaconda Cloud api site https://api.anaconda.org 
Fetching package metadata: ...... 
Solving package specifications: . 
Error: Packages missing in current linux-64 channels: 
    - r 3.2.2* 
    - r-rcolorbrewer 

我已经通过安装r 3.2.2 -64bit 10,它运行没有问题。我也已经通过conda安装了r-colorbrewer,并且我可以在R中使用该包而没有问题。为什么在尝试构建conda包时遇到这些错误?

我在Linux(Antergos,Arch衍生产品)上,内核为4.4.5-1-ARCH。


UPDATE 2015年4月19日

感谢this answer,我发现我可以在同一个目录,我想安装的软件包分别创建这些文件包括的依赖关系。这对我不起作用,但我也读到,我可以在安装命令-c中包含一个通道,就像安装时一样。所以,现在我做:

conda build -c r r-rafalib 

这被通过了所有的依赖问题,但是获取,提取和链接包后,它会失败。这是错误消息的结尾。

Removing old work directory 
Source cache directory is: /home/joel/anaconda2/conda-bld/src_cache 
Downloading source to cache: rafalib_1.0.0.tar.gz 
Downloading http://cran.r-project.org/src/contrib/rafalib_1.0.0.tar.gz 
rafalib_1.0.0. 100% |#######################| Time: 0:00:00 4.87 MB/s 
Success 
Extracting download 
Package: r-rafalib-1.0.0-r3.2.2_0 
source tree in: /home/joel/anaconda2/conda-bld/work/rafalib 
+ mv DESCRIPTION DESCRIPTION.old 
+ grep -v '^Priority: ' DESCRIPTION.old 
+ /home/joel/anaconda2/envs/_build/bin/R CMD INSTALL --build . 
sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook 
Command failed: /bin/bash -x -e /home/joel/drafts/r-rafalib/build.sh 

误差sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook相同我使用install.packages()as reported here时遇到的问题。

有一些related discussion in this thread。我试图通过安装不同版本的ncurses来解决这个错误,其中包括this patched version,并且我试图链接readline库,as suggested here,但是我仍然遇到同样的错误。在这一点上我很迷茫,任何帮助解决这个问题都将不胜感激。

+0

Windows 7上的同样问题,包'WeightedCluster'的依赖关系'r-traminer'。用'install.packages'结束在R中的安装。 – Diego

回答

0

尽管我从一个不同的问题开始,但最终的解决方案竟然与我在其他地方发布的How to install R-packages not in the conda repositories?相同。为了完整性,我在此添加它。


最后,我周围的rl_event_hook问题得到了通过以下the approach recommended here和符号链接蟒蛇的libreadline到系统中的一个:

mv ~/anaconda3/lib/libreadline.s.6.2 ~/anaconda3/lib/libreadline.s.6.2.bak 
ln -s /usr/lib/libreadline.so.6.3 ~/anaconda3/lib/libreadline.s.6.2 

我仍然有麻烦安装某些依赖重型R-包因当使用install.packages()来处理R时,无法加载共享对象。但是,更简单的包可以正常工作,并且我可以从anacondas R库中获取大部分依赖关系较大的包。