Installer un local package R avec des dépendances de CRAN miroir
J'ai construit un package R, c'est à dire que j'ai l'mypackage.tar.gz fichier. Ce paquet dépend de plusieurs autres paquets, tous téléchargeables et installables à partir CRAN miroir.
Maintenant je veux installer ce paquet sur un système où les dépendances ne sont pas encore installés, et je voudrais que les dépendances sera téléchargée et installée automatiquement quand j'ai installer mon colis.
J'ai essayé:
install.packages("mypackage.tar.gz",type="source",dependencies=TRUE,repos="http://a.cran.mirror")
mais elle cherche mypackage.tar.gz
sur le miroir (et, évidemment, il ne trouve pas), alors que si j'ai mis repos=NULL
correctement essaie d'installer le package local de fichier (comme indiqué), mais évidemment, il ne trouve pas les dépendances des paquets.
Donc ma question est: est-il possible d'effectuer un "mixte" de l'installation (forfait local en ligne dépendances) ou la seule façon de le faire est d'installer manuellement toutes les dépendances?
- Liées (et éventuellement en double): stackoverflow.com/questions/5805049/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
install
de la devtools paquet. Il suffit d'exécuterinstall("<directory of your package>", dependencies = TRUE)
. Sa aider les états à:Si vous avez déjà installé votre forfait local, vous devriez être en mesure d'utiliser un couple de fonctions dans outils pour installer les dépendances de CRAN:
Remarque: Vous pouvez passer des arguments (comme
repos
) par le biais deinstallFoundDepends
àinstall.packages
.Vous pouvez également utiliser le
Depends
élément de lapkgDepends
sortie de passer directement àinstall.packages
:Mise à JOUR: Apparemment, il n'est pas possible d'installer un paquet avec
dependencies=FALSE
. Ce qui semble étrange, puisque vous pouvez le faire que pour un package distant à partir d'un référentiel. La raison ( en regardant le code source ), c'est queif(is.null(repos) & missing(contriburl))
, l'installation est gérée via des appels système pourR CMD INSTALL
, qui n'a pas de dépendance liés à des arguments.Ici, je suis en utilisant
untar()
avecdevtools::install()
et en le passant dans un répertoire où l'archive source a été extraite.Si vous désirez installer de multiples repos, vous pouvez fournir une liste d'entre eux. Par exemple, pour utiliser à la fois Bioconductor et CRAN, vous pouvez exécuter:
REMARQUE: je ne peux pas comprendre comment passer directement de l'archive à
install()
, mais cette solution fonctionne dans le temps et ne laisse pas de désordre, parce que nous extraire dans un répertoire temporaire. Il sembleinstall_local()
devrait être en mesure de prendre une archive, mais je reçois une erreur lorsque vous tentez de le faire.Personnellement, j'utilise RStudio qui vous informe sur les dépendances manquantes. Puis je copie la chaîne de caractères dans les arguments de la petit script pour changer l'étrange symboles classiques " (xclip est de la copie vers le presse-papier [c'est comme pbcopy sur macOS]).
Puis-je simplement utiliser
install.packages(c(ctrl_v__what_to_install))
et R commence à installer toutes les dépendances.NB: rappelez-vous que les deux
‘
écrit dans le script ci-dessus sont différents et la première fois que vous copiez ce script, je vous conseille de copier à nouveau l'original guillemets caractères.