安装R包arrow

R包arrow依赖于cpp的libarrow,需安装。如果没有已经装好的libarrow,R包arrow过程中会自己获取并安装。但过程中可能会用到低版本的openssl,报错 

arrow.so: undefined symbol: EVP_MD_CTX_destroy

原因是老版本的openSSL会有EVP_MD_CTX_destroy,但新版本的openSSL中,EVP_MD_CTX_destroy改为了EVP_MD_CTX_free。手动安装过程一直使用的更新版的openSSL,不知道为何,安装R包arrow的过程中,它会找到并使用老版本的openSSL。

因此,选择自己从头编译安装libarrow。

  1. 下载并解压arrow-apache-arrow-18.1.0;
  2. 进入cpp,建立inbuild, mybuild两目录
  3. 进入inbuild
  4. 通过cmake配置,然后编译、安装:
cmake  .. \
    -DCMAKE_INSTALL_PREFIX=`pwd`/../mybuild \
    -DARROW_ACERO="ON" \
    -DARROW_COMPUTE="ON" \
    -DARROW_CSV="ON" \
    -DARROW_DATASET="ON" \
    -DARROW_FILESYSTEM="ON" \
    -DARROW_JSON="ON" \
    -DARROW_MIMALLOC="ON" \
    -DARROW_ORC="ON" \
    -DARROW_PARQUET="ON" \
    -DARROW_SUBSTRAIT="ON" \
    -DARROW_WITH_BROTLI="ON" \
    -DARROW_WITH_BZ2="ON" \
    -DARROW_WITH_LZ4="ON" \
    -DARROW_WITH_RE2="ON" \
    -DARROW_WITH_SNAPPY="ON" \
    -DARROW_WITH_UTF8PROC="ON" \
    -DARROW_WITH_ZLIB="ON" \
    -DARROW_WITH_ZSTD="ON" \
    -DCMAKE_BUILD_TYPE="Release" \
    -DCMAKE_EXPORT_COMPILE_COMMANDS="ON" \
    -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc

cmake --build .

make install

   注意,这里的很多选择是预设安装选项ninja-release-python的。但cmake时使用选项--preset "ninja-release-python"出错,就一个一个指定了。

关于安装libarrow的更多信息,请见Building Arrow C++ — Apache Arrow v20.0.0.dev99

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值