[英]How to install R-packages not in the conda repositories?
我正在使用Anaconda来管理我的R-installation。 它适用于Anaconda提供的R-channel中可用的软件包,但我在安装Anaconda repos中未包含的软件包时遇到了麻烦。
我尝试了几种不同的方法,下面列出了它们的错误输出。
install.packages('rafalib')
建议在这里工作conda - 如何安装“R-essentials”中没有的R包? 。 我的.libPaths()
指向'/home/user/anaconda2/lib/R/library'
。
日期:
--- Please select a CRAN mirror for use in this session ---
Error in download.file(url, destfile = f, quiet = TRUE) :
unsupported URL scheme
Error: .onLoad failed in loadNamespace() for 'tcltk', details:
call: fun(libname, pkgname)
error: Can't find a usable init.tcl in the following directories:
/opt/anaconda1anaconda2anaconda3/lib/tcl8.5 ./lib/tcl8.5 ./lib/tcl8.5 ./library ./library ./tcl8.5.18/library ./tcl8.5.18/library
This probably means that Tcl wasn't installed properly.
我从conda通道r-old
安装了tcl
,但install.packages()
仍然抛出相同的错误消息。
options(menu.graphics=FALSE)
然后install.packages('rafalib')
我得到了一个镜子列表并选择了一个。
日期:
Selection: 15
trying URL 'http://cran.utstat.utoronto.ca/src/contrib/rafalib_1.0.0.tar.gz'
Content type 'application/x-gzip' length 11798 bytes (11 KB)
==================================================
downloaded 11 KB
sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook
The downloaded source packages are in
‘/tmp/Rtmphwpta0/downloaded_packages’
Warning message:
In install.packages("rafalib") :
installation of package ‘rafalib’ had non-zero exit status
2和3都来自禁用/抑制tcltk弹出窗口,用于R中的CRAN镜像选择
~/.Rprofile
设置镜像 在尝试install.packages()
之前,我将以下内容添加到~/.Rprofile
。
## Default repo
local({r <- getOption("repos");
r["CRAN"] <- "http://cran.us.r-project.org";
options(repos=r)})
日期:
trying URL 'http://cran.us.r-project.org/src/contrib/rafalib_1.0.0.tar.gz'
Content type 'application/x-gzip' length 11798 bytes (11 KB)
==================================================
downloaded 11 KB
sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook
The downloaded source packages are in
‘/tmp/RtmppIz9rT/downloaded_packages’
Warning message:
In install.packages("rafalib") :
installation of package ‘rafalib’ had non-zero exit status
同时保持新的~/.Rprofile configuration
。 我想这不是必要的,因为包现在似乎正在下载,但我测试它以防万一。
日期:
sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook
Warning in download.packages(pkgs, destdir = tmpd, available = available, :
download of package ‘rafalib’ failed
Warning message:
In download.file(url, destfile, method, mode = "wb", ...) :
download had nonzero exit status
install.packages('../Downloads/rafalib_1.0.0.tar.gz', repos=NULL, type='source')
日期:
sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook
Warning message:
In install.packages("../Downloads/rafalib_1.0.0.tar.gz", repos = NULL, :
installation of package ‘../Downloads/rafalib_1.0.0.tar.gz’ had non-zero exit status
rafalib
构建rafalib
包 我为这个为conda构建R-packages的Errors打开了一个单独的问题。 简而言之,它抱怨我已经安装了缺少的依赖项。 更新我得到了一个依赖性问题,我现在陷入了与我的其他方法相同的rl_signal_event_hook
。
sudo ln /usr/lib/libncursesw.so.6 /usr/lib/libncursesw.so.5
根据https://github.com/conda/conda/issues/1679 ,但它没有为我解决问题。
因此,我现在可以正常下载该软件包,但安装失败。 我已经看到错误消息sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook
以前在Jupyter Notebook
使用R和irkernel
,但它从未阻碍我的工作。 通过anaconda运行python时,我从未见过与该错误消息有关的任何内容。
我没有想法。 有谁知道如何安装anaconda不提供的R-package,如rafalib
或者swirl
?
我在Linux(Antergos,Arch衍生物)上使用内核4.4.5-1-ARCH。
更新2016/04/15
这个帖子中有一些相关的讨论 。 我试图通过安装不同版本的ncurses来解决这个错误,包括这个修补版本 ,我试图链接readline库, 如此处所示 ,但我一直遇到同样的错误。 我在这一点上很失落,任何帮助解决这个问题都将非常感激。
关于管理和不在Anaconda R中的软件包的详细帖子: http : //ihrke.github.io/conda.html
基本上是使用命令:
conda skeleton cran <package_name>
conda build <package_name>
如果包具有也不在Anaconda中的依赖项:
conda skeleton cran <dependency1>
conda skeleton cran <dependency2>
conda build <package_name>
基本上我同意这篇文章说我不明白install.packages()
如何与Anaconda一起工作。 我似乎看到的是,Anaconda创建了一个R环境,其中保存了从install.packages()
安装的所有软件包。
每当我使用R在Jupyter中工作时,我都使用这个环境,并且能够访问我使用install.packages()
安装的所有软件包。
最后,我按照这里推荐的方法解决了rl_event_hook
问题,并将anaconda的libreadline符号rl_event_hook
问题:
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-package时遇到麻烦,因为在使用带有R的install.packages()
时无法加载共享对象。但是,更简单的包工作正常,我可以从anacondas R-获得大多数依赖性重包库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.