2016-04-05 10 views
4

Ich baue ein R-Paket mit Paket. Das Paket ist vollständig getestet und Installation von der lokal gespeicherten Quelldatei vonAbhängigkeiten von package-interner Paketbibliothek laden

install.packages("myPackage.tar.gz", repos = NULL, type = "source") 

funktioniert, wenn alle Abhängigkeiten (angegeben in dem Import: Feld) auf dem lokalen Computer installiert sind. Allerdings möchte ich dieses Paket auf einem anderen Server installieren, auf dem keine Abhängigkeiten installiert sind. Wenn ich versuche, dies zu tun, erhalte ich die Fehler

"ERROR: dependencies ‘survey’, ‘dplyr’ are not available for package 'myPackage'" 

Ich habe auch versucht die packrat Bündel zu installieren, die ich von

erstellt Aufruf
packrat::bundle(project = 'pathtomypackageproject', file = 'myPackage.tar.gz', 
       include.lib = TRUE) 

aber ich den gleichen Fehler.

Ich denke, das Problem ist, dass bei der Installation von 'myPackage' R das erste Element von .libPaths() durchsucht, nichts findet und da "repos = NULL" angegeben ist, hat nirgends die Pakete zu installieren So wird der Fehler ausgelöst.

Eine Lösung, die ich immer noch vermeiden möchte, ist, ein Repository mit allen Abhängigkeiten auf den Server zu übertragen und bei der Installation des Pakets auf das Repository zu zeigen. Im Idealfall muss ich myPackage.tar.gz nur übertragen.

Meine Frage ist, ob es eine Möglichkeit gibt, auf die interne Packrat-Bibliothek zu verweisen, wo alle Abhängigkeiten gefunden werden können, und die Namespaces von dort zu importieren.

+0

können wir das Paket irgendwo finden? zB auf GitHub oder anderen? –

+0

Ich kenne packrat nicht, aber können Sie 'dplyr' und' survey' nicht einfach zu Ihrer 'Imports:' in Ihrer 'DESCRIPTION' Datei hinzufügen? – C8H10N4O2

+0

Ich habe es hinzugefügt, aber der Import erfordert vorherige Installation der jeweiligen Pakete. – denise

Antwort

0

Wenn Sie die Liste der Pakete enthalten sind, in Beschreibungsdatei importiert werden, dann müssen Sie ihn nur während der Installation des Pakets tun:

install.packages("myPackage",dependencies=TRUE) 
+0

Das funktioniert jedoch nur, wenn ich mein Paket von CRAN installiere oder wenn ich alle Quelldateien der Abhängigkeiten lokal gespeichert habe. Was ich erreichen möchte ist, dass nur ein Paket installiert werden muss. Wenn dieses Paket eine interne Bibliothek mit allen Abhängigkeiten enthält, dachte ich, es könnte eine Möglichkeit geben, den Namespace-Import auf diese interne Bibliothek zu verweisen. Da technisch alle Abhängigkeiten gefunden werden können, sucht R einfach nicht den richtigen Platz! – denise

+0

Was ich will, ist ziemlich genau das, was Hadley hier erwähnt: https://github.com/rstudio/packrat/issues/31#issuecomment-208313921, aber dieses Problem scheint noch nicht gelöst zu sein. Wenn jemand eine Idee hat, wie man das manuell löst, wäre ich super dankbar! – denise

Verwandte Themen