【发布时间】:2021-06-02 16:09:17
【问题描述】:
我正在编写一个 R 包,它的一个功能从链接下载并解压缩文件(但它不会导出给用户):
download_f <- function(download_dir) {
utils::download.file(
url = "https://servicos.ibama.gov.br/ctf/publico/areasembargadas/downloadListaAreasEmbargadas.php",
destfile = file.path(download_dir, "fines.rar"),
mode = 'wb',
method = 'libcurl'
)
utils::unzip(
zipfile = file.path(download_dir, "fines.rar"),
exdir = file.path(download_dir)
)
}
当我在其他函数中运行该函数以编译小插图中的示例时,该函数对我很有效。
但是,在 github 操作中使用 R CMD 检查,它在 ubuntu 16.04、发布和开发中始终失败。它[说][1]:
Error: Error: processing vignette 'IBAMA.Rmd' failed with diagnostics:
cannot open URL 'https://servicos.ibama.gov.br/ctf/publico/areasembargadas/downloadListaAreasEmbargadas.php'
--- failed re-building ‘IBAMA.Rmd’
SUMMARY: processing the following file failed:
‘IBAMA.Rmd’
Error: Error: Vignette re-building failed.
Execution halted
Error: Error in proc$get_built_file() : Build process failed
Calls: <Anonymous> ... build_package -> with_envvar -> force -> <Anonymous>
Execution halted
Error: Process completed with exit code 1.
当我运行devtools::check() 时,它永远不会完成运行,永远停留在“创建小插曲”中。我不知道这些问题是否相关,因为包装上还有其他小插曲。
我通过 mac os 和 windows 的 R CMD 检查。我尝试在utils::download.file 上切换“模式”和“方法”参数,但无济于事。
有什么建议吗? [1]:https://github.com/datazoompuc/datazoom.amazonia/pull/16/checks?check_run_id=2026865974
【问题讨论】:
-
但是谁的防火墙?我不明白 github 操作是如何工作的,因为我的服务器是 Windows....
-
我的理解是 github 操作在自己的服务器上运行检查,但我从未使用过它:希望有这方面经验的人可以提供帮助
-
我可以在本地 Ubuntu 18.04 机器上重现此问题。这可能类似于我曾经遇到的一个问题:unix.stackexchange.com/questions/559526/… - 我得到了一个非常好的答案。在这种情况下,问题不会出在您的网站上,而是下载服务器的配置错误。
-
如果这个问题确实和我的一样,那么你应该写信给servicos.ibama.gov.br的管理员并告知他们这个问题。如果您现在需要解决方案并且不能等待他们做出反应,那么您可以尝试按照我的问题的第二个答案中建议的方式进行破解。您必须在 github 操作中添加一些代码才能手动安装中间证书。这将使检查通过,但当然你的包的一些用户可能会遇到这个问题。
标签: r ssl testing github-actions devtools