[JupyterLab集成 R 环境]-解决 x11 服务连接失败问题
JupyterLab 集成 R 语言
JupyterLab作为一个交互式的Python开发环境,同时具备强大的可扩展能力,支持包括 Java、R 等其他语言进行交互式开发的能力,确实称的上是一代神器。
最近因为公司业务需要,所以花了几天时间调研了一下关于 JupyterLab 中集成 R 内核的方案,中间碰到了一个比较恶心的问题,就是在 centos 服务器上无图形化界面时 X11 服务连接不上的问题。
查询了许多的相关资料,只能说网上相关的文档写的都挺乱的,所以才写了这篇文章,希望能给各位有需要的朋友一些帮助。
我用的服务器是 Centos7,直接安装的 Anaconda 环境,安装 R 环境之前需要做的前缀操作就是要配置对应的 Anaconda 环境变量,然后按照如下步骤走安装即可。
安装 R 语言环境
#### 安装对应 Linux 依赖
yum install -y gcc
yum install -y gcc-gfortran
yum install -y gcc-c++
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 bzip2-devel
yum install -y xz-devel.x86_64
yum install -y pcre-devel
yum install -y libcurl
yum install -y libcurl-devel
yum install -y texinfo.x86_64
yum install -y texlive-pdftex-doc.noarch
yum install -y texlive
yum install -y xorg-x11-server-Xvfb
yum install -y xorg-x11-fonts-75dpi
yum install -y xorg-x11-fonts-100dpi
yum install -y libXtst-devel
yum install -y libssh2-devel
yum install -y libgit2-devel
yum install -y mysql-devel
yum install -y xz-devel
yum install -y xml2
yum install -y libxml2-devel
yum install -y git
yum install -y xorg-x11-fonts-*.noarch
yum install -y cairo* libxt*
yum install -y cairo-devel.i686
下载二进制源码包
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.6.3.tar.gz
解压编译安装
# 解压到指定目录,自行指定目录
tar -zxf R-3.6.3.tar.gz -C /opt/R-src/R-3.6.3
# 解压完成后切到对应的源码目录下
cd /opt/R-src
# 编译生成 Makefile 文件
./configure --enable-R-shlib --with-tcltk --with-x --with-libpng --with-jpeglib --with-libtiff --with-pic --prefix=/opt/R
# 编译安装
make && make install
# 配置环境变量
vi /etc/profile
export R_HOME=/opt/R
export PATH=$PATH:$R_HOME/bin
source /etc/profile
安装 R 依赖及解决环境问题
安装 R 依赖和内核
# 命令行输入 R 进入 R 终端界面
R
# 安装 R 依赖
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest','png','jpeg'))
# 在上述安装过程中,如果出现 xml2 之类的依赖找不到的情况下,且上述 yum 安装的依赖确认已经按照,则 echo $PATH,看环境变量中是否存在 anaconda 的配置,先临时去掉anaconda 的环境变量,等 R 依赖安装完成后再恢复
# 安装 R 内核
devtools::install_github('IRkernel/IRkernel')
# 生成 R 内核信息,括号内 user = FALSE 表示不限定用户,默认可不带
IRkernel::installspec(user = FALSE)
解决无图形化界面Centos 服务器 X11 服务连接不上问题
# 启动一个虚拟屏幕进程
/usr/bin/Xvfb -ac :99 -screen 0 1024x768x16 &
# 设置环境变量
vi /etc/profile
export DISPLAY=:99
source /etc/profile
再次进入 R 环境,输入capabilities()确认 X11 为 TRUE
capabilities()