【发布时间】:2016-12-08 12:28:42
【问题描述】:
我有一个关于如何在从源代码安装自制包时自动安装依赖库的问题。
基本上,DESCRIPTION 文件看起来像:
Package: mypackage
Type: Package
Title: mypackage_title
Version: 0.1.0
Author: test
Maintainer: test <test @example.com>
Description: More about what it does (maybe more than one line)
Depends:
dplyr,
stringr
License: MIT
LazyData: TRUE
RoxygenNote: 5.0.1
我关注guide 并创建了一个.tar.gz 文件。当我分发此软件包时,用户将从源代码安装。此外,我期望从这个源安装中,如果这两个不可用,将自动安装诸如dplyr 和stringr 之类的依赖库。
我在虚拟机中进行了测试,但遇到了以下错误。那么对这个问题有什么建议吗?提前致谢!
install.packages("path_to_my_tar.gz", repos=NULL, type="source")
Error: dependencies 'dplyr', 'stringr' are not available for package
更新:我尝试了其他几种方法,但仍然失败...
方法一
install.packages("path/to/my/package", repos = NULL, type = "source")
ERROR: dependencies 'dplyr', 'stringr' are not available for package
方法2:将my package、dplyr和stringr放入path/to/my/package/folder
install.packages("path/to/my/package", repos = "path/to/my/package/folder/", type = "source")
Warning in install.packages :
unable to access index for repository path/to/my/package/folder/src/contrib:
scheme not supported in URL 'path/to/my/package/folder/src/contrib/PACKAGES'
Warning in install.packages :
my packageis not available (for R version 3.3.1)
方法 3:使用 contriburl 将 my package、dplyr 和 stringr 放入 path/to/my/package/folder
install.packages("path/to/my/package", contriburl = "path/to/my/package/folder/", type = "source")
Installing package into my package (as lib?is unspecified)
Warning in install.packages :
unable to access index for repository path/to/my/package/folder/:
scheme not supported in URL 'path/to/my/package/folder/PACKAGES'
Warning in install.packages :
my package is not available (for R version 3.3.1)
方法四:
install.packages("ProdComp08032016_0.1.2.tar.gz", repos = c("file://C:/Users/TH2/Downloads/", "http://cran.us.r-project.org"), type = "source") 安装包到:/Users/TH2/Documents/R/win-library/3.3?(因为ib?未指定) install.packages 中的警告: 无法打开压缩文件'//C:/Users/TH2/Downloads/src/contrib/PACKAGES',可能的原因'没有这样的文件或目录' install.packages 中的错误:无法打开连接
方法5:
install.packages("ProdComp08032016_0.1.2.tar.gz", repos = c("C:/Users/TH2/Downloads/", "http://cran.us.r-project.org"), type = "source") 安装包到:/Users/TH2/Documents/R/win-library/3.3?(因为ib?未指定) install.packages 中的警告: 无法访问存储库 C:/Users/TH2/Downloads/src/contrib 的索引: URL 'C:/Users/TH2/Downloads/src/contrib/PACKAGES' 中不支持方案 install.packages 中的警告: 包rodComp08032016_0.1.2.tar.gz?不可用(适用于R版本3.3.1)
【问题讨论】:
-
澄清一下;你的虚拟机有一个配置好的互联网连接,它可以安装上述依赖项?如果您尝试从构建机器上的
.tar.gz安装它会发生什么? -
@JonathanCarroll,正确。虚拟机有互联网连接。同样的安装方法适用于我之前安装过
dplyr和stringr的构建机器。 -
基本解决方案:在
install.packages("path_to_my_tar.gz", repos=NULL, type="source")之前运行install.packages(c("dplyr", "stringr"))。当您将新的依赖项添加到您的包时,您需要更新install.packages()调用,但这应该没问题。