首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >devtools::install_git无法在依赖项或导入中安装包的依赖项

devtools::install_git无法在依赖项或导入中安装包的依赖项
EN

Stack Overflow用户
提问于 2017-02-09 14:49:36
回答 1查看 1.1K关注 0票数 2

我有一个依赖于包extrafont的包。如果用户的系统中不存在字体外及其依赖项Rttf2pt1,则我的包的安装将失败。我在包的描述文件中将extrafont作为“依赖”。当我运行devtools::install_git()从URL安装包时,输出终止于:

代码语言:javascript
复制
** preparing package for lazy loading
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  there is no package called 'Rttf2pt1'
Error : package 'extrafont' could not be loaded
ERROR: lazy loading failed for package 'tntpr'
* removing 'C:/Users/SFirke/Documents/R/win-library/3.3/tntpr'

看起来外型安装正常,但由于缺少Rttf2pt1而无法工作。当我将Rttf2pt1添加到描述文件中的“依赖”列表中时,安装就成功了,安装了extrafontRttf2pt1以及我的包。

为什么我需要将Rttf2pt1放在我的依赖列表中?它出现在来自extrafont包的描述文件中的“导入”列表中:

代码语言:javascript
复制
Depends:
    R (>= 2.15)
Imports:
    extrafontdb,
    grDevices,
    utils,
    Rttf2pt1

附加信息

当我运行devtools::install_git("https://myurl.com/tntpr.git", dependencies = TRUE)时,我得到以下输出。它从GitHub安装dplyr,然后安装外型,然后加载我的包失败:

代码语言:javascript
复制
Installing tntpr
Downloading GitHub repo hadley/dplyr@master
from URL https://api.github.com/repos/hadley/dplyr/zipball/master
Installing dplyr
"C:/PROGRA~1/R/R-33~1.2/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL  \
  "C:/Users/SFirke/AppData/Local/Temp/RtmpMlRSSR/devtools3dfc4e39620/hadley-dplyr-5902277" --library="C:/Users/SFirke/Documents/R/win-library/3.3" --install-tests 

* installing *source* package 'dplyr' ...
** libs

*** arch - i386
C:/RBuildTools/3.4/mingw_32/bin/g++  -I"C:/PROGRA~1/R/R-33~1.2/include" -DNDEBUG -I../inst/include -DCOMPILING_DPLYR   -I"C:/Users/SFirke/Documents/R/win-library/3.3/Rcpp/include" -I"C:/Users/SFirke/Documents/R/win-library/3.3/BH/include" -I"C:/Users/SFirke/Documents/R/win-library/3.3/bindrcpp/include" -I"C:/Users/SFirke/Documents/R/win-library/3.3/plogr/include" -I"d:/Compiler/gcc-4.9.3/local330/include"     -O2 -Wall  -mtune=core2 -c RcppExports.cpp -o RcppExports.o
<--- lots more lines like this ^^^^^ --->
** R
** data
*** moving datasets to lazyload DB
** inst
** tests
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
*** arch - i386
*** arch - x64
* DONE (dplyr)
Installing 1 package: extrafont
Installing package into ‘C:/Users/SFirke/Documents/R/win-library/3.3’
(as ‘lib’ is unspecified)
trying URL 'https://cran.rstudio.com/bin/windows/contrib/3.3/extrafont_0.17.zip'
Content type 'application/zip' length 34323 bytes (33 KB)
downloaded 33 KB

package ‘extrafont’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\SFirke\AppData\Local\Temp\RtmpMlRSSR\downloaded_packages
"C:/PROGRA~1/R/R-33~1.2/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL "C:/Users/SFirke/AppData/Local/Temp/RtmpMlRSSR/file3dfc4a973a21"  \
  --library="C:/Users/SFirke/Documents/R/win-library/3.3" --install-tests 

* installing *source* package 'tntpr' ...
** R
** data
*** moving datasets to lazyload DB
** inst
** tests
** preparing package for lazy loading
Error in loadNamespace(j <- i[[1L]], c(lib.loc, .libPaths()), versionCheck = vI[[j]]) : 
  there is no package called 'Rttf2pt1'
Error : package 'extrafont' could not be loaded
ERROR: lazy loading failed for package 'tntpr'
* removing 'C:/Users/SFirke/Documents/R/win-library/3.3/tntpr'
Error: Command failed (1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 02:10:05

问题:存在特定于的问题,其中devtools 1.12.0 (当前CRAN版本)当前开发版本的devtools 1.12.0.9000在嵌套/递归依赖项方面存在问题(例如,您的包A依赖于包B,它依赖于包C;devtools函数install_*(A)不会安装C)。

请参见此评论:开发版本和线程顶部的部分,这些部分也说明了CRAN版本和要安装的此包的变通方法是手动指定子依赖项的问题。

解决方案:我安装了一个旧版本的devtools 1.11.1 (2016年4月发布),它适用于上面的install_git()调用,即使缺少需要安装的依赖项。

代码语言:javascript
复制
install.packages("devtools") # from CRAN
devtools::install_version("devtools", version = "1.11.1", repos = "http://cran.us.r-project.org") # get the old version

然后重新启动R并按预期使用devtools。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42139762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档