簡體   English   中英

如何安裝不在conda存儲庫中的R-packages?

[英]How to install R-packages not in the conda repositories?

我正在使用Anaconda來管理我的R-installation。 它適用於Anaconda提供的R-channel中可用的軟件包,但我在安裝Anaconda repos中未包含的軟件包時遇到了麻煩。

我嘗試了幾種不同的方法,下面列出了它們的錯誤輸出。

1. 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()仍然拋出相同的錯誤消息。

2. 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鏡像選擇

3.在~/.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

4.將下載方法設置為'curl'或'wget'。

同時保持新的~/.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

5.手動下載rafalib

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

6.從rafalib構建rafalib

我為這個為conda構建R-packages的Errors打開了一個單獨的問題。 簡而言之,它抱怨我已經安裝了缺少的依賴項。 更新我得到了一個依賴性問題,我現在陷入了與我的其他方法相同的rl_signal_event_hook

7. 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM