最近课题用到的一个软件需要运行RScript,因此踏入了在Linux服务器上安装R的坑,一把辛酸泪,特此记录一下。
1. 下载并解压R 3.4.4安装包
wget https://cran.r-project.org/src/base/R-3/R-3.4.4.tar.gz
tar xavf R-3.4.4.tar.gz
cd R-3.4.4
2. 配置编译
./configure --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas --prefix=$your_path
./ 是你当前cd到R-3.4.4下的路径
–enable-R-shlib表示生成libR.so库,这个当需要进行gcc等编译的时候很重要
–with-readline=yes表示用于R shell条件下的调试优化,建议加上
–with-libpng=yes表示可导出png图片
–with-blas表示优化R运算并生成libRblas.so库
–prefix保证最后能完整安装,否则make install会去安装到/usr/lib文件夹下,非root用户没有权限
3. 缺失依赖环境的更新
我在上一步配置编译的时候,提示如下:
R依赖包Zlib安装.1于是接下来我安装了zlib 1.2.11
(1) zlib-1.2.11下载
下载地址:https://www.zlib.net/fossils/,通过FileZilla上传到服务器
(2) 解压及安装zlib-1.2.11
tar xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=$HOME/packages
make
make install
我直接把zlib-1.2.11安装在我放R的文件夹下,即下面这种情况:
zlib-1.2.11安装.2
$HOME用的安装的路径
4. 设置环境变量
设置环境变量的原因是在安装R devel的时候需要找到相应组件的位置,具体操作如下:
#切到主目录
cd
#vim编辑器打开 .bash_profile文件配制环境
vi .bash_profile
#添加以下路径
export PATH=$HOME/packages/bin:$PATH
export LD_LIBRARY_PATH=$HOME/packages/lib:$LD_LIBRARY_PATH
export CFLAGS="-I$HOME/packages/include"
export LDFLAGS="-L$HOME/packages/lib"
#退出vim编辑器
:wq
#执行.bash_profile
source .bash_profile
5.最后编译
./configure --prefix=/your/path --enable-R-shlib --with-readline=yes --with-libpng=yes --with-blas LDFLAGS="-L/your/path/lib" CPPFLAGS="-I/your/path/include"
这里的/your/path/保持和上面环境配置时一样就行了
References:
1.Linux 环境下 R 语言的配置和安装 https://blog.csdn.net/FirePanda007/article/details/79941235
- Linux下R3.4.1安装手册 https://zhuanlan.zhihu.com/p/28055351
妈蛋。。。在写完这篇记录的时候发现
checking if bzip2 version >= 1.0.6... no
checking whether bzip2 support suffices... configure: error: bzip2 library and headers are required
微笑脸
下面安装并配置bzip2
(1)SourceForge下载bzip2-1.0.6
地址为:https://sourceforge.net/projects/bzip2/
(2)解压并配置
tar xzvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so
make clean
make
make -n install PREFIX=$HOME/packages
make install PREFIX=$HOME/packages
(3) 再次编译R
checking if lzma version >= 5.0.3... no
configure: error: "liblzma library and headers are required"
endlessly.........
祝各位好运~
网友评论