记第一次安装 R语言,并安装R 依赖包环境;
安装第三方包 openair 需要 >= 3.2.0
1.安装 R 3.2.5
参考文章:http://blog.sina.com.cn/s/blog_5753ac150101vgua.html
安装配置 ./configure –prefix=… –enable-R-shlib –with-x=no
安装好了 R 环境后;进入 R
2.安装 openair
安装 openair 包
$ R
install.packages('openair')
报错了:**下面是报错信息**
..../R_X11.so: undefined symbol: png_set_longjmp_fn
解决方式
1.改成手动下载 openair 本地包 : https://cran.r-project.org/src/contrib/Archive/openair/
$ R CMD INSTALL openair_1.9-0.tar.gz
2.报错了:
报错提示:缺少依赖包 mapdata
下载 mapdata 本地包 : https://cran.r-project.org/src/contrib/Archive/mapdata/
$ R CMD INSTALL mapdata_2.2-4.tar.gz #maps 包需要 >= 2.2.4,否则报错
ok,本地的 mapdata 安装正确
3.继续安装 maps R包
下载 maps 本地包 https://cran.r-project.org/src/contrib/Archive/maps/
$ R CMD INSTALL maps_2.3-11.tar.gz
4.继续安装 openair 本地包
$ R CMD INSTALL openair_1.9-0.tar.gz
也ok啦,此时完成安装本地的 openair
3.使用 R 保存图片时候,又报错了
报错信息:
错误原因:linux 环境不支持X11保存图片,换成另外一个包 Cairo
解决方式
参考文章:http://blog.sina.com.cn/s/blog_14e18411e0102x2jp.html
不使用X11,使用 Cairo 来保存;
1.安装 linux 的Cairo 依赖环境
$ sudo yum install cairo* libxt*
2.使用 R 包安装 install.packages(‘Cairo’);
报错了,换成本地包安装
3.下载 Cairo 本地包 https://cran.r-project.org/src/contrib/Archive/Cairo/
使用的是 Cairo_1.5-5.tar.gz
$ R CMD INSTALL Cairo_1.5-5.tar.gz
所有依赖包都搞定了 没有报错 最后一步就是修改代码,把原来X11保存图片的 改成 Cairo
library('Cairo');
CairoPNG(...)
使用python rpy2 调用 R 程序异常解决
1.引入 rpy2 环境报错
import rpy2.robjects as robjects
''' error:
unable to load shared object /xxxx/xxx/R-install/lib64/R/library/stats/libs/stats.so
libRlapack.so: cannot open shared object file: No such file or directory
'''
搜谷歌:libRlapack.so
https://stackoverflow.com/questions/21333097/got-message-unable-to-load-shared-object-stats-so-when-r-starts
R CMD ldd /xxxx/xxx/R-install/lib64/R/library/stats/libs/stats.so
'''
列出了:
linux-vdso.so.1 => (0x00007fffd8f99000)
#改信息去查看,是有该文件的
libRlapack.so => /xxxx/xxx/R-install/R-install/lib64/R/lib/libRlapack.so (0x00007ff0e62a5000)
libRblas.so => /xxxx/xxx/R-install/R-install/lib64/R/lib/libRblas.so (0x00007ff0e6079000)
libgfortran.so.3 => /usr/lib64/libgfortran.so.3 (0x00007ff0e5d75000)
libm.so.6 => /lib64/libm.so.6 (0x00007ff0e5af1000)
libR.so => /xxxx/xxx/R-install/R-install/lib64/R/lib/libR.so (0x00007ff0e54a5000)
libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007ff0e5290000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff0e5073000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff0e4cde000)
libreadline.so.6 => /lib64/libreadline.so.6 (0x00007ff0e4a9b000)
libz.so.1 => /lib64/libz.so.1 (0x00007ff0e4885000)
librt.so.1 => /lib64/librt.so.1 (0x00007ff0e467c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ff0e4478000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff0e690c000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007ff0e4257000)
'''
参考改文章:http://blog.sciencenet.cn/blog-830496-891715.html
# 把上面 stats.so 里的 libRlapack.so 的地址 copy 到 R 的安装目录下的 lib64(或 lib) 文件夹下
$ cp /xxxx/xxx/R-install/R-install/lib64/R/modules/ /xxxx/xxx/R-install/R-install/lib64/libRlapack.so
import rpy2.robjects as robjects
# 成功,不报错了
总结:
依赖包:
mapdata_2.2-4.tar.gz
maps_2.3-11.tar.gz
openair_1.9-0.tar.gz
Cairo_1.5-5.tar.gz
参考文章:
编译R时的配置 :
http://blog.sina.com.cn/s/blog_5753ac150101vgua.html
http://debugo.com/linux-r-install/
解决找不到 libRlapack :
https://stackoverflow.com/questions/21333097/got-message-unable-to-load-shared-object-stats-so-when-r-starts
解决 X11 问题:
http://blog.sina.com.cn/s/blog_14e18411e0102x2jp.html
解决 Cairo 的linux 依赖包环境问题:https://stackoverflow.com/questions/38137546/x11-is-not-available-centos