
When you build libarrow from source, its dependencies will be automatically downloaded. Likewise, if you R CMD INSTALL -build arrow on a CentOS machine with the newer compilers, you can take the binary package it produces and install it on any other CentOS machine without those compilers. What’s more, if you install a binary package from RStudio Package Manager (see method 1a below), you do not need to set up any of this. You don’t need to enable the devtoolset every time you load the package. Note that the C++17 compiler is only required at build time. Yum install -y libcurl-devel openssl-develĮcho "CC = $(which gcc) -fPIC" > ~/.R/MakevarsĮcho "CXX17 = $(which g++) -fPIC" > ~/.R/MakevarsĮcho "CXX17STD = -std=c++17" > ~/.R/MakevarsĮcho "CXX17FLAGS = $" > ~/.R/Makevars # Optional: also install cloud storage dependencies, as described below This script installs devtoolset-8 and configures R to be able to use C++17: #!/usr/bin/env bash If you are on CentOS 7, to build arrow you will need to install a newer devtoolset, and you’ll need to update R’s Makevars to define the CXX17 variables.

Most contemporary Linux distributions have a new enough compiler however, CentOS 7 is a notable exception, as it ships with gcc 4.8.


For gcc, this generally means version 7 or newer. As of version 10.0.0, arrow requires a C++17 compiler to build.
