继续学R:重新装R / Installing R from source (2) 又掉坑里了😭

上篇文章写到在Linux系统下安装R的开发环境,尽管最终R运行了起来,但是其实有很多坑。

其中一个坑是由于--enable-R-shlib带来的性能折扣,而其实我并不需要或者至少目前不需要R的动态库(libR.so),所以加这个选项纯属多此一举。

另外一个坑是X11报错时我直接加上了--with-x=no配置选项,但是在我使用绘图功能时,比如png(file = "barchart.png")会提示如下错误信息:

Error in png(file = "barchart.png") : X11 is not available


(图源 :pixabay)

这真是应了我前文中的一句话:你以前偷的懒,都会在以后找回来的。既然如此,那么就重新装R,尝试避免这些问题吧。

准备工作和其它

这部分和之前的文章没啥区别,参考继续学R:在Linux下源码方式装R / Installing R from source,对应部分吧。

无非是:

  • 更新系统
  • 下载软件
  • 安装编译工具

因为这些我都做过啦,无需再做一遍。由于我是重装,所以可以使用个新目录,这样就可以对比两个安装的差异了,不过我懒得比啦,直接清空原来的内容好了。

rm -rf /opt/R/*
(或者用make uninstall)

如果没有装过Fortran编译器,需要记得装上gfortran

sudo apt-get install gfortran

因为我们主要遇到的是X11的问题,所以直接装上对应的软件包吧。在R Installation and AdministrationEssential-programs-and-libraries章节中,有如下内容:

Unless you do not want to view graphs on-screen (or use macOS) you need ‘X11’ installed, including its headers and client libraries. For recent Fedora/RedHat distributions it means (at least) RPMs ‘libX11’, ‘libX11-devel’, ‘libXt’ and ‘libXt-devel’. On Debian/Ubuntu we recommend the meta-package ‘xorg-dev’. If you really do not want these you will need to explicitly configure R without X11, using --with-x=no.

我试着在我的系统下使用如下命令:

sudo apt-get install libx11-dev

虽然也可以安装成功libx11-dev,但是配置的时候还是提示:

configure: error: --with-x=yes (default) and X11 headers/libs are not available

所以在我的系统下(Raspbian)使用以下命令才是正解

sudo apt-get install xorg-dev

配置R编译选项

执行如下命令,进行编译选项配置

./configure --disable-java --prefix=/opt/R

原以为会一路畅通,结果却报如下错误:

checking whether PCRE support suffices... configure: error: pcre >= 8.20 library and headers are required

研究和尝试了半天,发现以下命令可以解决这个问题。

sudo apt-get install libpcrel3-dev

重新进行编译选项配置

./configure --disable-java --prefix=/opt/R

一切顺畅,结果如下:

编译 & 安装

剩下的就简单喽,执行如下命令进行编译和安装

make
make install

注意:
R生成的Makefile可能有问题,make完了,执行安装时,会出如下错误(尽管之前我已经make clean了)

/usr/bin/install: cannot stat ‘NEWS.pdf’: No such file or directory

解决的方法是,删除原来的源码目录,重新解压源码包,重新进行整个流程。

设置软链接(我的软链接还在,可以略过这步)

cd /usr/bin
sudo ln -s /opt/R/bin/R R
sudo ln -s /opt/R/bin/Rscript Rscript

安装成功后让我们测试一下:

R


一切正常。

然后试一下:

png(file = "barchart.png")

扎心了

继续
capabilities()

😭看来我没法从坑里爬出来了?谁来拉我一把?

相关链接

H2
H3
H4
3 columns
2 columns
1 column
9 Comments