Ubuntu下编译R运行环境

Posted by rogerclarkgc on 周六 14 十月 2017

Ubuntu下编译R运行环境

最近终于把Ubuntu在自己的工作机上安装好了,准备逐渐开始习惯在Linux下完成自己的代码工作,因此首先就是要搭建工作环境了。

我最常用的语言就是R与Python,Ubuntu自己有Python支持,所以暂时不用担心,只用安装R运行环境。由于我在安装Ubuntu时使用的是不连网的安装方式,因此许多支持的库根本没有安装好,要自行编译R,那少不了许多编译用的库。

首先当然是build-essential,这个库几乎所有通过编译安装的软件都要使用:

sudo apt-get install build-essential

接着就是到R官方网站下载对应的打包文件

wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.4.2.tar.gz

在下载完后将文件解压缩到一个已知的位置,我在~下新建一个RHOME文件夹来放置解压后文件:

mkdir ~/R_HOME
tar -zxvf ~/下载/R-3.4.2.tar.gz

这里放置的时未经过编译的R源文件,需要执行后续的编译步骤才能生成能运行的bin

现在开始编译,现在目录下解压缩生成的文件夹R-3.4.2内运行配置脚本:

./configure

这个脚本会逐个检查R的运行环境所需的组件,根据官网上的要求,我一共安装了如下组件:

  1. 显示图像设备:X11,安装名:xorg-dev
  2. 命令行下自动完成功能:readline,安装名:libreadline-dev
  3. zlib支持:安装名:libbz2-dev
  4. libcurl: 安装名:libcurl4-openssl-dev
  5. fortran 编译器:安装名:gfortran
  6. liblzma: 安装名:liblzma-dev
  7. perl库:安装名:libpcre3-dev
  8. Latex用于生成PDF:安装名:textlive-latex-base
  9. JAVA编译器和运行环境:在使用apt-cache检索java后,安装了default-jdkdefault-jre

以上的库都可以通过apt-get来获取。

在完成编译环境依赖库安装后,可以直接运行makemake test来进行编译和编译后的测试。

完成以上的步骤后,R-3.4.2的目录发生了改变,已经多出了bin等文件夹,进入bin后可以运行R,但安装还没有完成,再运行make install来把R安装到默认的目录/usr/local/lib/下。此时,可以在shell中直接输入R来运行R3.4.2

在编译时,可以使用:

`./configure --prefix /where/you/want/to/install/R`

来制定make install的安装路径

在后续安装Rstudio时,出现了如下错误:

R shared library (/usr/local/lib/R/lib/libR.so) not found

在查找原因时发现是编译时没有使用 --enable-R-shilib导致的,在执行了make uninstall卸载了R,并删除了整个编译文件夹后,我重新使用./configure --enable-R-shlib来重新编译R。这样就能使用Rstudio了。

tags: Linux, R, method