我正在重建一个自定义 R 包,该包在说明文件的 Depends 行中具有 RcppArmadillo 以及其他库。
我正在运行 R 3.5.1。当我在 RStudio 中重建包时,出现错误:
ERROR: dependency ‘RcppArmadillo’ is not available for package 'custom package name'
根据R Packages book,在重建包时必须安装 Depends/Imports 下的包。
我正在重建一个自定义 R 包,该包在说明文件的 Depends 行中具有 RcppArmadillo 以及其他库。
我正在运行 R 3.5.1。当我在 RStudio 中重建包时,出现错误:
ERROR: dependency ‘RcppArmadillo’ is not available for package 'custom package name'
根据R Packages book,在重建包时必须安装 Depends/Imports 下的包。
改为使用devtools::install()
。
根据RStudio 网站,
Build and Reload 命令按顺序执行几个步骤以确保干净和正确的结果:
1.卸载任何现有版本的包(如果需要,包括共享库)。
2.使用 R CMD INSTALL 构建和安装包。
3.重新启动底层R会话以确保重新加载包的干净环境。
4.通过执行库函数在新的 R 会话中重新加载包。
虽然devtools::install()
将为您安装依赖项 - 来自help("install.packages")
:
使用 R CMD INSTALL 安装包。如果尚未安装,还将尝试从 CRAN 安装软件包的依赖项。
(强调添加)这不是R CMD INSTALL
单独的情况(?INSTALL
从 R 或R CMD INSTALL --help
命令行等查看 - 没有提到安装所需的依赖项)。
所以,看起来语言
事实上,无论何时安装你的包,这些包(如果还没有的话)都会安装在你的计算机上(devtools::load_all() 也会检查包是否已安装)。
来自 Hadley 的R Packages有点具体;它与使用无关R CMD INSTALL
(RStudio 的构建功能显然使用),但适用于devtools::install()
. 这是个人喜好问题,但老实说,我强烈建议devtools
在您的包开发工作流程中使用。
我rbenchmark
通过
remove.packages("rbenchmark")
然后创建了一个虚拟包
devtools::create("SOexample", rstudio = FALSE)
并编辑说明以放入rbenchmark
Imports,这SOexample
取决于它。我在中添加了以下代码R/hello_world.R
:
hello_world <- function() print("Hello, world!")
我试过R CMD INSTALL
了,但得到了错误
*安装到库 '/home/duckmayr/R/x86_64-pc-linux-gnu-library/3.5'<br> 错误:依赖项 'rbenchmark' 不适用于包 'SOexample'<br> *删除 '/home/ Dukemayr/R/x86_64-pc-linux-gnu-library/3.5/SOexample'</p>
但是,如果我尝试devtools::install()
:
> devtools::install("SOexample/")
Installing SOexample
trying URL 'https://cloud.r-project.org/src/contrib/rbenchmark_1.0.0.tar.gz'
Content type 'application/x-gzip' length 5093 bytes
==================================================
downloaded 5093 bytes
Installing rbenchmark
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet \
CMD INSTALL '/tmp/RtmpA0NOMe/devtools723832018149/rbenchmark' \
--library='/home/duckmayr/R/x86_64-pc-linux-gnu-library/3.5' --install-tests
* installing *source* package ‘rbenchmark’ ...
** package ‘rbenchmark’ successfully unpacked and MD5 sums checked
** R
** demo
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (rbenchmark)
'/usr/lib/R/bin/R' --no-site-file --no-environ --no-save --no-restore --quiet \
CMD INSTALL '/home/duckmayr/SOexample' \
--library='/home/duckmayr/R/x86_64-pc-linux-gnu-library/3.5' --install-tests
* installing *source* package ‘SOexample’ ...
** R
** byte-compile and prepare package for lazy loading
** help
No man pages found in package ‘SOexample’
*** installing help indices
** building package indices
** testing if installed package can be loaded
* DONE (SOexample)