centos72009源码编译R语言

发布于:2024-10-09 ⋅ 阅读:(38) ⋅ 点赞:(0)

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version=3.4.0 -Pkubernetes

spark3.5.3 源码版本

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes clean -DskipTests

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes


./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes


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

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

 Downloading https://nodejs.org/dist/v12.22.1/node-v12.22.1-linux-x64.tar.gz to /home/maven/local/repo/com/github/eirslett/node/12.22.1/node-12.22.1-linux-x64.tar.gz


源码编译的生成目录
/home/hadoop-3.4.0/hadoop-dist/target

-------------------------------------------------------------------------------------------------------------------------------------
安装python3
wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz

yum -y install libffi-devel zlib zlib-dev zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel mysql-devel readline-devel tk-devel libffi libffi-devel gcc gcc-c++ make

make clean
./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl --with-ensurepip=install --enable-shared --with-system-libmpdec --with-lto --enable-ipv6

make -j $(nproc)  # 使用并行编译,便于加快速度
sudo make altinstall  # 使用 altinstall 避免覆盖系统自带的 python

sudo ln -s /usr/local/python3/bin/python3.12 /usr/bin/python3


sudo ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
openssl version

遇到问题:./Modules/_decimal/_decimal.c:36:23: fatal error: mpdecimal.h: No such file or directory
 #include "mpdecimal.h"

解决方法:
wget https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-2.5.1.tar.gz
tar -xzf mpdecimal-2.5.1.tar.gz
cd mpdecimal-2.5.1
# 编译和安装
./configure
make
sudo make install

sudo yum groupinstall "Development Tools"
sudo yum install openssl-devel bzip2-devel readline-devel \
sqlite-devel libffi-devel xz-devel


make clean
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make -j $(nproc)
sudo make altinstall

install.packages("knitr")
install.packages("sass")
install.packages("rmarkdown")
install.packages("pandoc")
library(knitr)
library(rmarkdown)
library(pandoc)
install.packages("Cairo")


yum install -y gcc
yum install -y glibc-headers
yum install -y libreadline6-dev gfortran 
yum install -y readline-devel
yum install -y wget libXt-devel
yum install -y fonts-chinese tcl tcl-devel tclx tk tk-devel
yum install -y mesa-libGLU mesa-libGLU-devel
yum install -y install bzip2-devel 
yum install -y install xz-devel.x86_64 
yum install -y install pcre-devel
yum install -y install libcurl
yum install -y install libcurl-devel
yum install -y  texinfo.x86_64
yum install -y texlive-pdftex-doc.noarch
yum install -y texlive
sudo yum install cairo cairo-devel -y

update.packages(ask = FALSE)
install.packages("dplyr", dependencies = TRUE)
install.packages("tidyr", dependencies = TRUE)
install.packages("data.table", dependencies = TRUE)
install.packages("ggplot2", dependencies = TRUE)
install.packages("plotly", dependencies = TRUE)
install.packages("lmtest", dependencies = TRUE)
install.packages("caret", dependencies = TRUE)
install.packages("lubridate", dependencies = TRUE)
install.packages("forecast", dependencies = TRUE)
install.packages("httr", dependencies = TRUE)
install.packages("jsonlite", dependencies = TRUE)
install.packages("readr", dependencies = TRUE)
install.packages("openxlsx", dependencies = TRUE)
install.packages("stringr", dependencies = TRUE)
install.packages("magrittr", dependencies = TRUE)
install.packages(c("dplyr", "ggplot2", "tidyr", "caret"))
install.packages("Cairo", dependencies = TRUE)
install.packages("pandoc", dependencies = TRUE)

wget https://www.cairographics.org/releases/cairo-1.16.0.tar.xz
 
# 解压源码
tar -xvf cairo-1.16.0.tar.xz
cd cairo-1.16.0/
 
# 配置构建系统
./configure
 
# 编译
make
 
# 安装
sudo make install

sudo yum groupinstall "X Window System"
sudo yum install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps


在 R 中使用 library(Cairo) 时,如果遇到问题,通常可以通过以下步骤进行排查和解决:

1. 确认 Cairo 包是否已安装
首先,确保 Cairo 包已经成功安装。可以使用以下命令检查:

R
installed.packages()
如果没有找到 Cairo,请重新安装它:

R
install.packages("Cairo", dependencies = TRUE)
2. 检查错误信息
运行 library(Cairo) 后,如果出现错误信息,请仔细查看这些错误提示。这些信息将有助于诊断问题的具体原因。

3. 安装依赖项
确保所有必要的依赖项都已安装,特别是图形相关的库。可以通过以下命令安装可能缺失的库:

bash
sudo yum install cairo cairo-devel libjpeg-turbo-devel libpng-devel pango pango-devel libicu libicu-devel
4. 检查 R 的版本
确保你的 R 版本是最新的,某些包可能与较旧的 R 版本不兼容。可以使用以下命令更新 R:

bash
sudo yum update R
5. 更新其他 R 包
确保你的其他 R 包都是最新的,这有助于避免版本冲突:

R
update.packages()
6. 验证 pkg-config
确保 pkg-config 正常工作,并能够找到 Cairo。你可以运行以下命令:

bash
pkg-config --cflags --libs cairo
如果有错误,请确保 Cairo 库正确安装,并且 PKG_CONFIG_PATH 环境变量设置正确。

7. 重启 R 会话
在完成上述步骤后,重启 R 会话,然后再次尝试加载 Cairo 包:

R
library(Cairo)
8. 从源代码安装(可选)
如果问题仍然存在,可以考虑从源代码编译 Cairo 和其他依赖。具体步骤参考之前的信息。

如果您仍然遇到问题,请提供具体的错误消息,以便进一步帮助您!


2024/9/28 23:38:53

library(Cairo)
没有任何输出是对的吗

2024/9/28 23:38:58

在 R 中,运行 library(Cairo) 如果没有任何输出,通常表示成功加载了该包。这是正常的行为,R 在加载包时并不一定会提供反馈,除非遇到错误。

检查包是否成功加载
你可以通过以下命令确认 Cairo 是否已成功加载:

R
search()
在返回的列表中,如果看到 package:Cairo,则说明包已经成功加载。

进行简单测试
为了确保 Cairo 正常工作,可以运行一个简单的绘图示例:

R
Cairo::CairoPNG("test.png")
plot(1:10, 1:10, main = "Test Plot")
dev.off()
这段代码将创建一个名为 test.png 的文件,其中包含一个简单的散点图。如果文件生成且图像正常,则说明 Cairo 包工作正常。

如果您有其他问题或需要进一步的帮助,请告诉我!


2024/9/28 23:39:50

> Cairo::CairoPNG("test.png")
> plot(1:10, 1:10, main = "Test Plot")
> dev.off()
null device 

2024/9/28 23:39:53

在 R 中,dev.off() 返回 null device 是正常的,这表示图形设备已经成功关闭。整个过程看起来是正常的。

检查输出文件
请检查当前工作目录中是否生成了 test.png 文件。你可以使用以下命令确认当前工作目录:

R
getwd()
然后在该目录下查找 test.png 文件。如果文件存在且图像显示正常,则说明 Cairo 包正常工作。

如果没有找到文件
如果没有找到 test.png 文件,请确保你具有写入当前工作目录的权限,或者尝试指定一个完整的路径来保存文件,比如:

R
Cairo::CairoPNG("/path/to/your/directory/test.png")
请将 /path/to/your/directory/ 替换为你希望保存文件的实际路径。


错误信息 svg: Cairo-based devices are not available for this platform 通常表示在当前平台上无法使用基于 Cairo 的 SVG 设备。这可能与系统环境或 Cairo 库的安装有关。以下是一些解决步骤:

1. 确认 Cairo 包是否正确安装
确保 Cairo 包及其依赖项已正确安装。可以通过以下命令重新安装:

R
install.packages("Cairo", dependencies = TRUE)
2. 检查系统依赖项
确保你的系统中安装了正确的 Cairo 库及其开发文件。具体步骤因操作系统而异。

对于 Ubuntu/Debian 系统:
bash
sudo apt-get install libcairo2-dev libxt-dev
对于 Fedora/RHEL 系统:
bash
sudo yum install cairo-devel libX11-devel
3. 确保 R 和包的版本兼容
确保你使用的 R 版本与 Cairo 包兼容。如果有较旧版本,考虑更新 R 和所有相关包:

R
update.packages()
4. 使用其他图形设备
如果继续遇到问题,可以尝试使用其他图形设备,例如 PNG 或 PDF:

R
# 使用 PNG 设备
Cairo::CairoPNG("test.png")
plot(1:10, 1:10, main = "Test Plot")
dev.off()

# 使用 PDF 设备
Cairo::CairoPDF("test.pdf")
plot(1:10, 1:10, main = "Test Plot")
dev.off()
5. 从源代码安装
如果问题仍然存在,可以尝试从源代码安装 Cairo 和其依赖库。根据你的操作系统,具体步骤会有所不同。

6. 重新启动 R 会话
完成上述步骤后,建议重启 R 会话,然后再次尝试加载 Cairo 包并生成图形。

错误信息 unable to open connection to X11 display '' 通常发生在尝试在没有 X11 图形环境的系统上运行图形设备时。以下是一些可能的解决方法:

1. 使用无头模式
如果你在一个没有图形用户界面的环境(例如服务器)上运行 R,可以使用无头模式来生成图形。例如,使用 PNG 或 PDF 设备,而不是依赖 X11:

R
# 使用 PNG 设备
png("output.png")
plot(1:10, main = "Test Plot")
dev.off()

# 或者使用 PDF 设备
pdf("output.pdf")
plot(1:10, main = "Test Plot")
dev.off()
2. 设置 DISPLAY 环境变量
如果你确实需要在带有图形界面的环境中运行 R,但仍然遇到此错误,可以尝试设置 DISPLAY 环境变量。通常在终端中执行以下命令:

bash
export DISPLAY=:0
然后重新启动 R 会话。

3. 检查 X11 是否安装和正在运行
确保你的系统上安装了 X11,并且 X 服务器正在运行。可以通过以下命令确认:

bash
sudo apt-get install xorg
然后启动 X 服务器。

4. 使用 RStudio
如果你使用的是 RStudio,它会管理图形设备。因此,直接在 RStudio 中运行你的代码,通常不会遇到此类问题。

5. 使用 VNC 或 SSH 转发
如果你希望使用图形界面,且在远程服务器上工作,可以通过 VNC 连接或使用 SSH 转发来实现:

SSH 转发:
bash
ssh -X user@hostname
这样就可以在 SSH 会话中打开 X11 应用程序。

6. 检查权限
确保当前用户对 X11 服务器有访问权限,可以使用以下命令允许所有用户连接:

bash
xhost +
7. 使用 Docker 容器
如果你在 Docker 容器中工作,确保容器能够访问主机的 X11 服务器,这可能涉及到运行容器时添加一些参数。


在 CentOS 7 上遇到 unable to open connection to X11 display '' 错误,通常是因为没有 X11 图形环境或配置不当。下面是一些解决步骤:

1. 使用无头模式
如果你只需要生成图形文件(如 PNG 或 PDF),可以使用无头模式,不依赖于 X11:

R
# 使用 PNG 设备
png("output.png")
plot(1:10, main = "Test Plot")
dev.off()

# 或者使用 PDF 设备
pdf("output.pdf")
plot(1:10, main = "Test Plot")
dev.off()
2. 确保 X11 已安装
如果需要在图形界面下运行 R,请确保已经安装了 X11 和相关库:

bash
sudo yum groupinstall "X Window System"
sudo yum install xorg-x11-server-Xorg xorg-x11-xauth xorg-x11-apps
3. 设置 DISPLAY 环境变量
在终端中运行以下命令设置 DISPLAY 环境变量:

bash
export DISPLAY=:0
4. 检查 X11 服务器运行状态
确保你的 X11 服务器正在运行。可以使用以下命令查看:

bash
ps -e | grep X
如果没有看到相关进程,你可能需要启动 X11:

bash
startx
5. 使用 SSH 转发(如果是远程连接)
如果你通过 SSH 连接到 CentOS 服务器,可以使用 X11 转发:

bash
ssh -X user@your_server_ip
确保在 SSH 配置文件(通常位于 /etc/ssh/sshd_config)中启用 X11Forwarding:

bash
X11Forwarding yes
然后重启 SSH 服务:

bash
sudo systemctl restart sshd
6. 检查权限
如果你仍然遇到问题,请确保你对 X11 服务器有访问权限。在终端中运行:

bash
xhost +
这将允许所有用户连接到 X11 服务器。

7. 使用 VNC
如果你需要一个图形界面,可以考虑安装和使用 VNC 服务器。这样即使在没有直接访问 X11 的情况下,也能通过 VNC 客户端进行远程图形操作。

8. 使用 Docker(如果适用)
如果你在 Docker 容器中工作,确保容器能够访问主机的 X11 服务器,这可能涉及到在运行容器时添加一些参数。

总结
如果以上方法都不能解决问题,请提供更多上下文信息,例如你是如何运行 R 的,以及你的环境配置,以便进一步帮助你排查问题。


yum install -y libxkbcommon-x11

rstudio-2024.09.0-375-x86_64.rpm


https://objects.githubusercontent.com/github-production-release-asset-2e65be/571770/cdb6377c-c961-4c95-ba06-f33fc418a03f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20240930%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240930T042903Z&X-Amz-Expires=300&X-Amz-Signature=433195e37387fb260da0cc7a41a083c78ee0e327960b9140e59889e0cbad09e7&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Dpandoc-3.4-linux-amd64.tar.gz&response-content-type=application%2Foctet-stream


 

设置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