在Linux上安装R 包arrow失败

编程语言 2026-07-09

说明如下:

Cannot install arrow: a C++20 compiler is required.

在R 控制台中,我执行 Sys.getenv("CXX"),结果如下:

[1] "g++-13"

这台Linux正在超级计算机上运行。

解决方案

在超级计算机上,我们没有根权限,无法安装任何东西。

以下是我自己的回答,我猜其中可能包含不必要的步骤。

为了安装一个名为“arrow”的包

  1. 准备模块(仅在超级计算机上)和PATH
module load gcc/13.2.0
module load cmake

(On Linux terminal)

find ~/ -name "libstdc++.so.6 的输出路径中导出其中一个路径,其形式大致如下(以下情况并非我的情况):

export LD_PRELOAD=/home/user/anaconda3/lib/libstdc++.so.6


(On Linux terminal)

2.在 Home目录下创建Makevars文件,即home/.R/Makevars,在其中写入如下内容:

CXX20=g++
CXX20STD=-std=c++20
CXX=g++

3.检查超级计算机的模块版本

  1. install.packages("arrow") 中的以下错误可见,

我注意到最新版无法在超级计算机上安装,

因为超级计算机上的cmake版本有点旧。

错误信息显示cmake的版本需要3.26,但在超级计算机上只发现了3.23.1。

**** Not using cmake found at /usr/local/software/ubuntu-20.04/devel/cmake/3.23.1/bin/cmake
***** Version >= 3.26 required; found 3.23.1
**** cmake 3.31.2
**** arrow

(On R console)

在超级计算机上,可用的cmake版本由 module avail cmake 显示(在Linux终端上)。

4.从归档中安装一个稍旧的版本的包“arrow” ,如下所述 ,该版本与超级计算机的环境兼容:(此版本已足以实现我的目标。)

# Set variables for C++ compiler
 Sys.setenv(CXX="g++");Sys.setenv(CXX20="g++");Sys.setenv(CXX20STD="-std=c++20");

 #install.packages("arrow")
install.packages("https://cran.r-project.org/src/contrib/Archive/arrow/arrow_14.0.2.1.tar.gz")

(On R console)
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章