2017-04-02 4 views
0

Ich schreibe dies, weil ich mehrere Tage brauchte, um zu diesem Ergebnis zu kommen.icudt Fehler bei der Installation Stringi-Bibliothek in R

Fazit: Die Stringi-Bibliothek Version 1.1.3 (März 2017 veröffentlicht) könnte Probleme mit icudt haben. Sie können stringi 1.1.2 mit den folgenden Befehlen installieren:

packageurl <- "https://cran.r-project.org/src/contrib/Archive/stringi/stringi_1.1.2.tar.gz" 
install.packages(packageurl, repos=NULL, type="source") 

ich dies zusammen aus einigen RStudio Dokumentation auf how to install an older package.

Hintergrund:

Ich habe versucht, die Prognose Bibliothek in R. Ursprünglich zu installieren, ich wurde mit R 3.1.2. Ich habe auch R 3.3.3 installiert und versucht, es zu installieren. Ich betreibe CentOS 6.7 und habe keine Wahl zu aktualisieren.

Die Prognose konnte aufgrund von Problemen bei der Installation von stringi nicht installiert werden. Die stringi-Bibliothek konnte aufgrund von Fehlern nicht installiert werden. ICU-Datenbibliothek herunterladen (icudt) Es sieht so aus, als hätte Stringi 1.1.3 eine Download-/Erstellungslogik bezüglich icudt hinzugefügt, und die kommende Version 1.1.4 hat Korrekturen zu dieser Logik (Stand 2017-04) -02).

ich auf die Intensivstation Projekt vor Ort ging: und heruntergeladen/installiert, um die ICU-Bibliothek, die in den folgenden Fehlermeldungen angegeben zu sein schien:

checking whether we may compile src/icu55/common/umapfile.c... yes 
checking whether we may compile src/icu55/common/putil.cpp... yes 
checking whether we can fetch icudt... WARNING: ignoring environment value of R_HOME 
downloading ICU data library (icudt) 
output path: icu55/data/icudt55l.zip 
Error in stri_download_icudt("icu55/data") : 
    could not find function "dir.exists" 
Calls: identical -> stri_download_icudt 
Execution halted 
*** icudt could not be downloaded. stopping. 
ERROR: configuration failed for package ‘stringi’ 

sucht online nach icu55, icudt55l.zip oder jedes Verfahren, das gefolgt, um über diesen Fehler zu kommen, erschien nicht eine Prozedur, die funktionierte. Ich habe ICU 55.1 und auch ICU 58.2 heruntergeladen, gebaut und installiert. Ich habe auch gcc und g ++ aktualisiert. Die CRAN-Repository-Installationshinweise für stringi 1.1.3 enthalten derzeit keine einfachen Anweisungen, um stringi erfolgreich zu installieren, wenn ich über eine funktionierende Internetverbindung verfüge.

Ich begann mit der Frage als eine Frage und fand dann meine Antwort. Ich werde es trotzdem posten. Ich hatte mehrere Links hinzugefügt, musste sie aber entfernen, weil ich nicht genug Kredit hatte, um mit ihnen davonzukommen.

Antwort

1

Die Stringi-Bibliothek Version 1.1.3 (März 2017 veröffentlicht) könnte Probleme mit icudt haben. Sie können stringi 1.1.2 mit den folgenden Befehlen installieren:

packageurl <- "https://cran.r-project.org/src/contrib/Archive/stringi/stringi_1.1.2.tar.gz" 
install.packages(packageurl, repos=NULL, type="source") 
1

Dies hat nichts mit ICU zu tun. Dies ist ein Fehler in Stringi, den ich bereits in Version 1.1.5 (jetzt auf CRAN) behoben habe. Die dir.exists() Funktion ist spezifisch für R ≥ 3.2.0 - das war mir nicht bekannt. Entschuldigung für Unannehmlichkeiten.

+0

Ich versuche 1.1.5 auf RHEL zu installieren, leider funktioniert es nicht, weil R die richtige Version von ICU4C nicht finden kann und offensichtlich versucht, etwas zu kompilieren, aber icudt (hinter der Firewall) nicht herunterladen kann. Was schlagen Sie vor? Wo kann ich icudt herunterladen und an die richtige Stelle setzen? Danke ... –

+1

@ Dieter.Wilhelm Die INSTALL-Dokumentation für Stringi-Status: ** Wenn Sie unser ICU4C-Bundle verwenden, wird standardmäßig die ICU-Datenbibliothek von einem unserer Spiegelserver heruntergeladen. Wenn Sie jedoch bereits eine Version von icudt * .zip für Ihre Plattform (big/little endian) heruntergeladen haben, können Sie das Paket installieren, indem Sie anrufen: ** 'install.packages (" stringi ", configure.vars = "ICUDT_DIR = ") 'Sie können dann die bereits heruntergeladene ZIP-Datei an eine beliebige Stelle setzen und in verweisen – danh