如何为箭头包安装 C++ 依赖项?

Posted

技术标签:

【中文标题】如何为箭头包安装 C++ 依赖项?【英文标题】:How to install C++ dependencies for the arrow package? 【发布时间】:2021-12-30 19:10:50 【问题描述】:

我正在尝试在基于 linux 的 R 会话中下载一个包(我也有终端访问权限)。它需要特定的 C++ 依赖项,但我不知道如何安装它们。

由于我在一家公司的服务器后面,他们限制了我们对网络的访问。而且所有包都有一个工件,我必须指向它才能下载包。

例如:我已经能够以这种方式设置更改 repo 以从 CRAN 安装软件包(我已经掩盖了网站的 ***):

r <- getOption("repos")
r["CRAN"] <- "https://***.***.***/artifactory/r-project-cran/"
options(repos = r)
options(download.file.method = "curl")
options(download.file.extra = "--insecure")

但是现在我遇到了其中一个包所需的特定依赖项的问题。特别是“箭头”包。

例如,我去了:

install.packages("arrow", dependencies=TRUE,type="source")
Installing package into ‘/***/***/R’
(as ‘lib’ is unspecified)
Warning: unable to access index for repository https://***.***.***/artifactory/list/cran-r/src/contrib:
  Line starting ' ...' is malformed!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 4662k  100 4662k    0     0  5268k      0 --:--:-- --:--:-- --:--:-- 5262k
* installing *source* package ‘arrow’ ...
** package ‘arrow’ successfully unpacked and MD5 sums checked
** using staged installation
curl: (6) Could not resolve host: github.com
*** Proceeding without C++ dependencies
------------------------- NOTE ---------------------------
There was an issue preparing the Arrow C++ libraries.
See https://arrow.apache.org/docs/r/articles/install.html
---------------------------------------------------------
ERROR: configuration failed for package ‘arrow’
* removing ‘/***/***/R/arrow’

The downloaded source packages are in
    ‘/tmp/Rtmpu2u1d3/downloaded_packages’
    有人知道我需要采取哪些具体步骤来解决此问题吗? 有没有办法改变curl命令并将其指向公司的神器为github? 或者,预先安装箭头 C++ 库?

【问题讨论】:

【参考方案1】:

如果您可以控制将哪个版本的arrow 放入您的工件服务器,您可以准备一个包含所有 C++ 依赖项的“胖”箭头源包。这是箭头 6.0.0 中添加的新实用程序功能。有关如何执行此操作的说明,请参阅 https://arrow.apache.org/docs/r/reference/create_package_with_all_dependencies.html。

您还可以安装官方 Apache Arrow 系统包,如 https://arrow.apache.org/install/ 中所述。这里的缺点是您必须保持这些库和 R 包的版本同步;如果您只升级一个而没有另一个,它将无法正常工作。 https://arrow.apache.org/docs/r/articles/install.html 对此进行了进一步讨论。

【讨论】:

嘿尼尔!谢谢你回到我身边。我刚刚遇到了一个问题,我按照说明创建了一个“胖”包装……但它似乎坏了。我在不同的计算机上尝试过===> create_package_with_all_dependencies("my_arrow_pkg.tar.gz") 出错:无法下载第三方依赖项 你知道功能是否损坏吗?我也在家里的电脑上试过,结果一样。 我们在 CI 中使用 test this workflow,但是看看这个函数,如果它能够在失败时为您提供更详细的输出,那就太好了。你介意opening a JIRA issue 让我们调查一下吗?

以上是关于如何为箭头包安装 C++ 依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

使用 setup.py 和 wheel 安装包依赖项

如何为 Spyder 安装 python 包

如何为蒸汽添加新的依赖项?

如何为 Eclipse 安装 CMSIS 包?

如何为本地安装 npm 包设置自定义位置?

列出 R 包依赖项而不安装包