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的运行环境所需的组件,根据官网上的要求,我一共安装了如下组件:
- 显示图像设备:X11,安装名:
xorg-dev - 命令行下自动完成功能:readline,安装名:
libreadline-dev - zlib支持:安装名:
libbz2-dev - libcurl: 安装名:
libcurl4-openssl-dev - fortran 编译器:安装名:
gfortran - liblzma: 安装名:
liblzma-dev - perl库:安装名:
libpcre3-dev - Latex用于生成PDF:安装名:
textlive-latex-base - JAVA编译器和运行环境:在使用
apt-cache检索java后,安装了default-jdk和default-jre
以上的库都可以通过apt-get来获取。
在完成编译环境依赖库安装后,可以直接运行make和make 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了。