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了。