./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version=3.4.0 -Pkubernetes clean -DskipTests
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes clean -DskipTests
wget https://cloud.r-project.org/src/base/R-4/R-4.4.1.tar.gz
sudo yum install gcc gcc-c++ make libcurl-devel libxml2-devel sqlite-devel -y
sudo yum install readline-devel libpng-devel libjpeg-devel libtiff-devel -y
说明:
在使用 ./configure 配置 R 的编译选项时,你可以根据需求添加多个参数。以下是一些常用的配置参数及其说明,适用于你提到的命令:
1. 常用配置参数
--prefix=/usr/local/R
指定 R 安装的基础目录。在这个路径下将会创建 bin、lib 等子目录。
--enable-R-shlib=yes
启用共享库,这对于某些 R 包(特别是需要与其他语言接口的包)是必要的。
--with-tcltk
启用对 Tcl/Tk 的支持。这是为了能够使用 R 图形用户界面功能(如 tcltk 包)。
2. 其他可用的配置选项
--with-blas
指定 BLAS (Basic Linear Algebra Subprograms) 的路径,以优化矩阵运算性能。例如:--with-blas=/usr/lib64/libblas.so。
--with-lapack
指定 LAPACK (Linear Algebra Package) 的路径,用于高级线性代数运算。例如:--with-lapack=/usr/lib64/liblapack.so。
--with-readline
启用 Readline 支持,允许在 R 命令行中使用更丰富的编辑功能。
--with-x
启用 X11 图形支持,允许使用 X11 窗口系统进行图形显示。
--with-jpeglib
启用 JPEG 图像支持。
--with-png
启用 PNG 图像支持。
--with-tiff
启用 TIFF 图像支持。
--with-dbi
启用 DBI 数据库接口。
--enable-memory-profiling
启用内存分析功能。
3. 示例命令
./configure --enable-R-shlib=yes \
--with-tcltk \
--prefix=/usr/local/R \
--with-blas=/usr/lib64/libblas.so \
--with-lapack=/usr/lib64/liblapack.so \
--with-readline \
--with-x \
--with-jpeglib \
--with-png \
--with-tiff \
--with-dbi \
--enable-memory-profiling
问题1:configure: error: No Fortran compiler found
解决办法:sudo yum install gcc-gfortran -y
问题2:configure: error: BLAS was specified but not available
1. 安装 BLAS 库
对于 CentOS 系统,可以通过以下命令安装 OpenBLAS 或 ATLAS:
安装 OpenBLAS
yum update -y
sudo yum install openblas-devel -y
或者安装 ATLAS
sudo yum install atlas-devel -y
2. 指定 BLAS 路径
如果你安装了 BLAS,但仍然遇到问题,可能需要在配置时明确指定 BLAS 的路径。例如,如果安装了 OpenBLAS,你可以使用如下命令:
./configure --enable-R-shlib=yes \
--with-tcltk \
--prefix=/usr/local/R \
--with-blas=/usr/lib64/libblas.so \
--with-lapack=/usr/lib64/liblapack.so \
--with-readline \
--with-x \
--with-jpeglib \
--with-png \
--with-tiff \
--with-dbi \
--enable-memory-profiling -with-blas=/usr/lib64/libopenblas.so --with-lapack=/usr/lib64/liblapack.so
3. 重新运行配置命令
安装完相应的 BLAS 库后,再次尝试运行 R 的配置命令
上面如果出现No package openblas-devel available
需要执行
sudo yum install epel-release -y
sudo yum install openblas-devel -y
再次执行./configure编译指令
问题3:configure: error: --with-x=yes (default) and X11 headers/libs are not available
sudo yum install libX11-devel libXt-devel -y
sudo yum install libXmu-devel libXrender-devel libXext-devel -y
问题4:checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
sudo yum install bzip2-devel -y
问题5:configure: error: PCRE2 library and headers are required, or use --with-pcre1 and PCRE >= 8.32 with UTF-8 support
sudo yum install pcre2-devel -y
安装make && make install
出现类似下面的输出
gcc -std=gnu11 -I. -I../../src/include -I../../src/include -I/usr/local/include -DHAVE_CONFIG_H -g -O2 -L/usr/local/lib64 -DR_HOME='"/usr/local/R/lib64/R"' \
-o Rscript ./Rscript.c
mkdir -p -- /usr/local/R/lib64/pkgconfig
make[2]: Leaving directory `/home/R-4.4.1/src/unix'
make[2]: Entering directory `/home/R-4.4.1/src/main'
mkdir -p -- /usr/local/R/lib64/R/bin/exec
make[3]: Entering directory `/home/R-4.4.1/src/main'
make[3]: Leaving directory `/home/R-4.4.1/src/main'
make[3]: Entering directory `/home/R-4.4.1/src/main'
mkdir -p -- /usr/local/R/lib64/R/lib
make[3]: Leaving directory `/home/R-4.4.1/src/main'
make[2]: Leaving directory `/home/R-4.4.1/src/main'
make[2]: Entering directory `/home/R-4.4.1/src/modules'
make[3]: Entering directory `/home/R-4.4.1/src/modules/internet'
mkdir -p -- /usr/local/R/lib64/R/modules
make[3]: Leaving directory `/home/R-4.4.1/src/modules/internet'
make[3]: Entering directory `/home/R-4.4.1/src/modules/lapack'
make[3]: Leaving directory `/home/R-4.4.1/src/modules/lapack'
make[3]: Entering directory `/home/R-4.4.1/src/modules/X11'
make[3]: Leaving directory `/home/R-4.4.1/src/modules/X11'
make[2]: Leaving directory `/home/R-4.4.1/src/modules'
make[2]: Entering directory `/home/R-4.4.1/src/library'
mkdir -p -- /usr/local/R/lib64/R/library
installing packages ...
building HTML index ...
make[2]: Leaving directory `/home/R-4.4.1/src/library'
make[1]: Leaving directory `/home/R-4.4.1/src'
make[1]: Entering directory `/home/R-4.4.1/tests'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/home/R-4.4.1/tests'
设置R_HOME的环境变量
export MANAGE_LOCAL_HBASE=true
export MANAGE_LOCAL_SOLR=true
export ZK_HOME=/home/zookeeper
export HADOOP_HOME=/home/hadoop-3.4.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export ATLAS_HOME=/home/apache-atlas-2.3.0
export MYSQL_HOME=/home/mysql
export JAVA_HOME=/usr/java/jdk-17
export M2_HOME=/home/maven
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export SPARK_HOME=/home/spark-3.3.3-bin-hadoop3
#export KAFKA_HOME=/home/kafka
#export HBASE_HOME=/home/hbase-2.5.5-hadoop3
#export SOLR_HOME=/home/solr/server/solr
export SPARK_CONF_DIR=$SPARK_HOME/conf
export HIVE_HOME=/home/apache-hive-3.1.3-bin
export FLINK_HOME=/home/flink
export KYUUBI_HOME=/home/kyuubi-1.8.0
export R_HOME=/usr/local/R
export PATH=$PATH:$R_HOME/bin:$R_HOME/lib64/R/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$ATLAS_HOME/bin:$MYSQL_HOME/bin:$SPARK_HOME/sbin:$SPARK_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$FLINK_HOME/bin:$KYUUBI_HOME/bin:$ZK_HOME/bin
source /etc/profile