【问题标题】:How to install libs for R arrow package on ubuntu without internet?如何在没有互联网的情况下在 ubuntu 上安装 R 箭头包的库?
【发布时间】:2021-10-03 06:56:18
【问题描述】:

我正在研究 Azure 数据块,它的计算服务器是 Ubuntu 18.04。由于安全原因,我想安装arrow R 包,但无法访问互联网。我在可以访问 Internet 的 MacBook 上下载了箭头 tar 文件,并使其在 ubuntu 中可用以进行手动安装。我执行了以下步骤:

  1. 重新安装 build-essential,方法是从此链接下载并上传到 ubuntu 并执行以下 bash 命令使其可用:sudo dpkg -i /dbfs/FileStore/tables/build_essential_12_4ubuntu1_amd64.deb
  2. 已安装 cpp11,因为它是 cran 上提到的依赖项:R CMD INSTALL /dbfs/FileStore/tables/arrow_dir/cpp11_0_3_1.tar.gz
  3. here 下载 arrow_4.0.1.tar.gz 并在 ubuntu 上提供。
  4. Here 在安装箭头包之前,我看到必需的 C++ 依赖项 在 ubuntu 上可用。如何在不访问互联网的情况下安装这些依赖项?

感谢您阅读我的问题。

注意:下面建议了一个解决方案,在执行./thirdparty/download_dependencies.sh $HOME/arrow-thirdparty之后我得到:

# Environment variables for offline Arrow build
export ARROW_ABSL_URL=/root/arrow-thirdparty/absl-0f3bb466b868b523cf1dc9b2aaaed65c77b28862.tar.gz
export ARROW_AWSSDK_URL=/root/arrow-thirdparty/aws-sdk-cpp-1.8.133.tar.gz
export ARROW_AWS_CHECKSUMS_URL=/root/arrow-thirdparty/aws-checksums-v0.1.10
export ARROW_AWS_C_COMMON_URL=/root/arrow-thirdparty/aws-c-common-v0.5.10.tar.gz
export ARROW_AWS_C_EVENT_STREAM_URL=/root/arrow-thirdparty/aws-c-event-stream-v0.1.5
export ARROW_BOOST_URL=/root/arrow-thirdparty/boost-1.75.0.tar.gz
export ARROW_BROTLI_URL=/root/arrow-thirdparty/brotli-v1.0.9.tar.gz
export ARROW_BZIP2_URL=/root/arrow-thirdparty/bzip2-1.0.8.tar.gz
export ARROW_CARES_URL=/root/arrow-thirdparty/cares-1.17.1.tar.gz
export ARROW_GBENCHMARK_URL=/root/arrow-thirdparty/gbenchmark-v1.5.2.tar.gz
export ARROW_GFLAGS_URL=/root/arrow-thirdparty/gflags-v2.2.2.tar.gz
export ARROW_GLOG_URL=/root/arrow-thirdparty/glog-v0.4.0.tar.gz
export ARROW_GRPC_URL=/root/arrow-thirdparty/grpc-v1.35.0.tar.gz
export ARROW_GTEST_URL=/root/arrow-thirdparty/gtest-1.10.0.tar.gz
export ARROW_JEMALLOC_URL=/root/arrow-thirdparty/jemalloc-5.2.1.tar.bz2
export ARROW_LZ4_URL=/root/arrow-thirdparty/lz4-v1.9.3.tar.gz
export ARROW_MIMALLOC_URL=/root/arrow-thirdparty/mimalloc-v1.7.2.tar.gz
export ARROW_ORC_URL=/root/arrow-thirdparty/orc-1.6.6.tar.gz
Failed downloading https://github.com/google/protobuf/releases/download/v3.14.0/protobuf-all-3.14.0.tar.gz

【问题讨论】:

  • 您是在 MacBook 还是远程服务器上运行 ./thirdparty/download_dependencies.sh
  • 在远程 ubuntu 服务器上
  • 我相信你需要在你的 MacBook 上运行下载脚本。它将下载您需要的所有依赖项。然后,您将需要手动将文件复制到远程服务器。然后,您将需要在远程服务器上指定环境变量。但是,环境变量中的路径应指向您将文件复制到远程服务器上的任何位置。
  • 我在 mac 中下载了 protobuf-all-3.14.0.tar.gz 并将所有 tar 文件压缩并在 ubuntu 上提供。现在我面临 cmake 安装问题。我发布了一个单独的问题:stackoverflow.com/questions/68574971/…

标签: r apache-arrow


【解决方案1】:

使用下面链接中提到的脚本来下载依赖项并将它们放在可以安装它们的地方会有帮助吗?

这里有一些说明:https://arrow.apache.org/docs/developers/cpp/building.html#offline-builds

我已将它们粘贴在下面以防链接过期,但您可能需要查看这些说明的最新版本。

要启用离线构建,您可以自己下载源工件并使用 ARROW_$LIBRARY_URL 形式的环境变量来指示构建系统从本地文件中读取,而不是访问互联网。

为了让您更轻松,我们准备了一个脚本thirdparty/download_dependencies.sh,它将每个依赖项的正确版本下载到您选择的目录中。它将在最后打印一个 bash 样式的环境变量语句列表,以用于您的构建脚本。

# Download tarballs into $HOME/arrow-thirdparty
$ ./thirdparty/download_dependencies.sh $HOME/arrow-thirdparty

然后您可以调用 CMake 来创建构建目录,它将使用声明的环境变量指向下载的档案而不是下载它们(每个构建目录一个!)。

【讨论】:

  • 我无法下载其中一个 tar 文件。我用注释更新了我的问题以显示输出。
  • 但我不确定这是否是唯一缺少的 .tar 文件!
  • 我在 mac 中下载了 protobuf-all-3.14.0.tar.gz 并将所有 tar 文件压缩并在 ubuntu 上可用。现在我面临 cmake 安装问题。我发布了一个单独的问题:stackoverflow.com/questions/68574971/…
  • 我会尽快接受这个答案。谢谢
【解决方案2】:

arrow 6.0.0 开始,该软件包在离线时应该成功地从源安装。它只有基本功能:您将能够使用 Arrow 数据和羽毛文件,但 Parquet 读取、S3 和压缩库等功能将不可用。还有一个新的实用程序函数create_package_with_all_dependencies(),您可以在连接到 Internet 的机器上运行它,以生成包含所有第三方 C++ 依赖项的“胖”源程序包。然后,您可以将其复制到您的气隙服务器。详情请见https://arrow.apache.org/docs/r/reference/create_package_with_all_dependencies.html

【讨论】:

    猜你喜欢
    • 2012-05-18
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2017-08-25
    相关资源
    最近更新 更多