未从Additional_repositories安装R包依赖关系 [英] R package dependencies not installed from Additional_repositories

查看:109
本文介绍了未从Additional_repositories安装R包依赖关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个程序包,该程序包需要另一个程序包OpenMx的名称空间.该软件包仅可从其自己的存储库中获得,但是在Additional_repositories字段中指定此存储库不起作用.尝试在未安装OpenMx的情况下构建软件包时,我得到:

I am developing a package that requires the namespace of another package, OpenMx. This package is only available from it's own repository, but specifying this repository in the Additional_repositories field does not work. When trying to build my package without OpenMx installed, I get:

错误:依赖项'OpenMx'不可用于此类

ERROR: dependency 'OpenMx' is not available for blah blah

我的描述是否有问题,或者我需要做其他事情?

Is there a problem with my description, or something else I need to be doing?

我的描述文件的相关部分:

The relevant piece of my description file:

Depends: R (>= 3.0.0)
Imports:  MASS, OpenMx (>= 2.0)
Additional_repositories: http://openmx.psyc.virginia.edu/OpenMx2/
LazyData: Yes
VignetteBuilder: knitr
Suggests: knitr

通过构建尝试登录:

Thu Apr  2 18:08:10 2015: Building tarball for package ctsem (SVN revision 5)
using R version 3.1.3 Patched (2015-03-16 r67994) ...

* checking for file ‘ctsem/DESCRIPTION’ ... OK
* preparing ‘ctsem’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
      -----------------------------------
* installing *source* package ‘ctsem’ ...
** R
** data
*** moving datasets to lazyload DB
** inst
** preparing package for lazy loading
Error in loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : 
  there is no package called ‘OpenMx’
ERROR: lazy loading failed for package ‘ctsem’
* removing ‘/tmp/RtmpAHPlFq/Rinst5272759a2048/ctsem’
      -----------------------------------
ERROR: package installation failed
Run time: 1.09 seconds.

推荐答案

AFAIK Additional_repositories仍然是自由格式的字段,不会自动添加到download.packages()所引用的options("repos")中,因此不会自动添加到install.packages().

AFAIK Additional_repositories is still a free-form field and not automatically added to the options("repos") consulted by download.packages() and hence install.packages() or update.packages().

对于在CRAN之外添加 repos 的问题,我写了一个小帮手包openmx)的情况,您所需要的只是drat::addRepo("openmx"),其余的则是从默认值推断出来的(并假设帐户drat仓库) >存在).

For the very problem of adding repos beyond CRAN, I wrote a little helper package drat which a few people, myself included, use to host repos either on GitHub (a "default" mode as it is so easy via gh-pages) or any other http-accessible server---ie local servers within a company or workgroup. Drat does nothing particularly difficult, but for this default case of adding a repository of user, say, openmx, all you need is drat::addRepo("openmx") and the rest is inferred from defaults (and assumes a drat repo in account openmx exists).

我同时部署了两个用例:通过GitHub上的repos和工作本地的repo来安装较新的软件包.

I deploy both use cases: newer packages via repos at GitHub, and a work-local repo.

但是WRE说

"Addiitonal_repositories"字段是逗号分隔的列表 存储库URL,其中在其他字段中命名的软件包可能是 成立. "R CMD检查"当前使用它来检查 包,至少可以作为源包找到(可以是 安装在任何平台上.

The 'Addiitonal_repositories' field is a comma-separated list of repository URLs where the packages named in the other fields may be found. It is currently used by 'R CMD check' to check that the packages can be found, at least as source packages (which can be installed on any platform).

这意味着它看起来在那里.奇怪的.回购在给定的URL上看起来合法.

which implies it looks there. Odd. And the repo looks legit at the given URL.

我在上述报价中向R Core发送了一个拼写错误的补丁.

Edit 2: And I sent a patch to R Core for the typo in the above quote.

这篇关于未从Additional_repositories安装R包依赖关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆