CentOS6 编译安装R-3.6.1 (更新R-4.0.3安装方法)

1. 安装依赖(有root权限)

#绘图相关
yum install libjpeg-devel
yum install libtiff-devel
yum install cairo-devel
yum install libpng-devel
yum install libicu-devel

# X11
yum install libXt-devel
yum install libX11-devel

yum install readline-devel
yum install zlib-devel
yum install bzip2-devel
yum install xz-devel
yum install pcre-devel
yum install openssl-devel
yum install curl-devel

2. 安装依赖(无root权限)

1) 下载安装ncurses

wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
tar zxvf ncurses-6.1.tar.gz
cd ncurses-6.1
./configure --prefix=/home/test/software/ncurses-6.1 --with-cxx-shared
make && make install

2) 下载安装readline

wget http://ftp.gnu.org/gnu/readline/readline-8.0.tar.gz
tar zxvf readline-8.0.tar.gz
cd readline-8.0
./configure --prefix=/home/test/software/readline-8.0
make && make install

3) 下载安装zlib

wget https://www.zlib.net/zlib-1.2.13.tar.gz
tar zxvf zlib-1.2.13.tar.gz
cd zlib-1.2.13
./configure --prefix=/home/test/software/zlib-1.2.13
make && make install

4) 下载安装bzip2

wget https://nchc.dl.sourceforge.net/project/bzip2/bzip2-1.0.6.tar.gz
tar zxvf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make PREFIX=/home/test/software/bzip2-1.0.6 install

5) 下载安装lzma

wget https://www.tukaani.org/xz/xz-5.2.4.tar.gz
tar zxvf xz-5.2.4.tar.gz
cd xz-5.2.4
./configure --prefix=/home/test/software/xz-5.2.4
make && make install

6) 下载安装pcre

wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
tar zxvf pcre-8.45.tar.gz
cd pcre-8.45
./configure --prefix=/home/test/software/pcre-8.45 --enable-utf8
make && make install

7) 下载安装openssl

wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
./config --prefix=/home/test/software/openssl-1.1.1d
make && make install

8) 下载安装curl

wget https://curl.haxx.se/download/curl-7.66.0.tar.gz
tar zxvf curl-7.66.0.tar.gz
cd curl-7.66.0
./configure --prefix=/home/test/software/curl-7.66.0 --with-ssl=/home/test/software/openssl-1.1.1d
make && make install

9) 下载安装pcre2

wget https://sourceforge.net/projects/pcre/files/pcre2/10.36/pcre2-10.36.tar.gz
tar zxvf pcre2-10.36.tar.gz
cd pcre2-10.36
./configure --prefix=/home/test/software/pcre2-10.36
make && make install

3. 安装R

# 环境变量,针对依赖由非管理员用户编译安装的情况,直接执行即可
export LDFLAGS="-L/home/test/software/ncurses-6.1/lib -L/home/test/software/readline-8.0/lib -L/home/test/software/zlib-1.2.11/lib -L/home/test/software/bzip2-1.0.6/lib -L/home/test/software/xz-5.2.4/lib -L/home/test/software/pcre-8.43/lib -L/home/test/software/curl-7.66.0/lib -L/home/test/software/pcre2-10.36/lib"

export CPPFLAGS="-I/home/test/software/readline-8.0/include -I/home/test/software/zlib-1.2.11/include -I/home/test/software/bzip2-1.0.6/include -I/home/test/software/xz-5.2.4/include -I/home/test/software/pcre-8.43/include -I/home/test/software/curl-7.66.0/include -I/home/test/software/pcre2-10.36/include"

export CFLAGS="-I/home/test/software/readline-8.0/include -I/home/test/software/zlib-1.2.11/include -I/home/test/software/bzip2-1.0.6/include -I/home/test/software/xz-5.2.4/include -I/home/test/software/pcre-8.43/include -I/home/test/software/curl-7.66.0/include -I/home/test/software/pcre2-10.36/include"

# 如果curl是由非管理员用户编译安装的,则需要将此行添加到.bashrc或者.bash_profile中
export PATH=/home/test/software/curl-7.66.0/bin:$PATH

# 如果openssl是非管理员用户编译安装的,则需要此行添加到.bashrc或者.bash_profile中
export LD_LIBRARY_PATH=/home/test/software/openssl-1.1.1d/lib:$LD_LIBRARY_PATH

# 安装R
# 安装R-4.0.3需要换成https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-4/R-4.0.3.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/base/R-3/R-3.6.1.tar.gz
tar zxvf R-3.6.1.tar.gz
cd R-3.6.1
./configure --prefix=/home/test/software/R-3.6.1
make && make install

4. 错误解决

1) curl报错

错误信息:

  • configure: error: libcurl >= 7.22.0 library and headers are required with support for https

解决方法:

  • 编译安装curl时添加--with-ssl=/path/to/openssl
  • 环境变量添加export PATH=/path/to/curl/bin:$PATH
  • 环境变量添加export LD_LIBRARY_PATH=/path/to/openssl/lib:$LD_LIBRARY_PATH

注:
在确认curl已安装,且环境变量一切没问题的情况下,仍报此错误,可以尝试编辑configure文件,更改如下信息:

r_cv_have_curl722=no 改为 r_cv_have_curl722=yes
r_cv_have_curl_https=no 改为 r_cv_have_curl_https=yes

修改后可强行跳过curl验证步骤,仅供参考。

2) gcc-10.1.0下make报错

解决方法:

  • 改用gcc-6.4.0编译

3)pcre2报错

解决方法:

如果是R-4.0.3 configure报错

  • 环境变量添加export PKG_CONFIG_PATH=/path/to/pcre2-10.36/lib/pkgconfig:$PKG_CONFIG_PATH

如果是make报错

  • 环境变量添加export LD_LIBRARY_PATH=/path/to/pcre2-10.36/lib:$LD_LIBRARY_PATH

3) make时libiconv报错

错误信息:

  • undefined reference to `_libiconv_version'

解决方法:

# 编译安装libiconv
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
tar zxvf libiconv-1.16.tar.gz
cd libiconv-1.16
./configure --prefix=/home/test/software/libiconv-1.16
make && make install

# 环境变量LDFLAGS加上-L/home/test/software/libiconv-1.16/lib
# 环境变量CFLAGS加上-I/home/test/software/libiconv-1.16/include
# 环境变量CPPFLAGS加上-I/home/test/software/libiconv-1.16/include

5. 其他

  • 目前本教程中绘图相关的库和X11库只能由管理员通过yum进行安装
  • 为防止对后续其他软件编译造成影响,本教程安装中使用的环境变量CFLAGS、CPPFLAGS和LDFLAGS应当注释或删除
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341