在Linux上安装R 包arrow失败
说明如下:
Cannot install arrow: a C++20 compiler is required.
在R 控制台中,我执行 Sys.getenv("CXX"),结果如下:
[1] "g++-13"
这台Linux正在超级计算机上运行。
解决方案
在超级计算机上,我们没有根权限,无法安装任何东西。
以下是我自己的回答,我猜其中可能包含不必要的步骤。
为了安装一个名为“arrow”的包
- 准备模块(仅在超级计算机上)和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.检查超级计算机的模块版本
- 从
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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。