2016-04-15 14 views
2

Ich habe Probleme mit der Installation von R-Paketen, die in den Anaconda-Repositories nicht verfügbar sind. Meine bisherigen Versuche finden Sie hier How to install R-packages not in the conda repositories?.Fehler beim Erstellen von R-Paketen für Conda

Derzeit Ich versuche, das R-Paket rafalib für conda zu bauen, indem Sie die Anweisungen von this article unter der Überschrift Aufbau ein Conda R Pakets.

Der erste Teil funktioniert gut.

conda skeleton cran rafalib 

Out:

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

Der Build-Befehl wird in Fehler

conda build r-rafalib 

Out:

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 

Ich habe r 3.2.2 -64bit überinstalliert 10 und es läuft ohne Probleme. Ich habe auch bereits r-colorbrewer über conda installiert und ich kann dieses Paket ohne Probleme in R verwenden. Warum bekomme ich diese Fehler beim Versuch, ein conda Paket zu bauen?

Ich bin auf Linux (Antergos, ein Arch-Derivat) mit Kernel 4.4.5-1-ARCH.


UPDATE 2015/04/19

Dank this answer, fand ich heraus, dass ich die Abhängigkeiten durch den Bau von ihnen getrennt im gleichen Verzeichnis wie das Paket enthalten könnte ich installieren möchten. Das hat bei mir nicht funktioniert, aber ich habe auch gelesen, dass ich einen Kanal in den Build-Befehl mit -c einbauen kann, genauso wie bei der Installation. So, jetzt ich:

conda build -c r r-rafalib 

Diese alle Abhängigkeitsprobleme übergeben wird, aber nach dem Abholen, Extrahieren und die Verknüpfung von Paketen es funktioniert nicht. Hier ist das Ende der Fehlermeldung.

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 

Der Fehler sh: symbol lookup error: sh: undefined symbol: rl_signal_event_hook ist das gleiche wie ich, wenn as reported hereinstall.packages() mit begegnen.

Es gibt einige related discussion in this thread. Ich habe versucht, diesen Fehler zu umgehen, indem ich verschiedene Versionen von ncurses installiert habe, einschließlich this patched version, und ich habe versucht, die readline-Bibliotheken as suggested here zu verknüpfen, aber ich laufe immer wieder in denselben Fehler. Ich bin an diesem Punkt ziemlich verloren und jede Hilfe, um dies zu lösen, würde sehr geschätzt werden.

+0

Das gleiche Problem auf Windows 7, mit dem Paket 'WeightedCluster' Abhängigkeiten' r-traminer'. Beendet die Installation in R mit 'install.packages'. – Diego

Antwort

0

Obwohl ich mit einem anderen Problem anfing, entpuppte sich die endgültige Lösung als die gleiche, die ich an anderer Stelle How to install R-packages not in the conda repositories?. Ich füge es hier der Vollständigkeit halber hinzu.


Am Ende bekam ich um die rl_event_hook Probleme durch the approach recommended here folgende und SymLink Anacondaâs libreadline in das System ein:

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 

Ich habe immer noch Probleme einige Abhängigkeit schwere R-Pakete zu installieren aufgrund Fehler beim Laden geteilter Objekte bei der Verwendung von install.packages() von Withing R. Allerdings funktionieren einfachere Pakete gut und ich kann die meisten Abhängigkeiten schweren Pakete von Anacondas R-Repositories erhalten.