生信

debug: 安装“tesseract”R包引发的一些列报错

2020-08-16  本文已影响0人  生信云笔记

前言

  今天安装R包‘tesseract’花式报错,所以就记录了一下,同时也希望能给其他遇到同样错误的人一点帮助。R的扩展包虽然使用起来很开心,但有时候安装起来却不是那么容易,可能遇到各种各样的错误,不过有一点庆幸的是R的错误提示会给出相应的提示及解决方向,这个还是挺友好的。比如我今天遇到的问题是缺少系统库,如下图所示提示:

从上面的错误提示可以看出提示我的系统缺少了‘libcurl’库,而且还给出了解决方案,那我们按着错误提示去做就可以了。比如我用的是Ubuntu系统,那只需安装“libcurl4-openssl-dev”就可以了,安装命令如下:

sudo apt-get install libcurl4-openssl-dev

但是我在安装“libcurl4-openssl-dev”过程中Linux系统又报错了,可以看出来是镜像源出问题了,其实为了加速网络我的系统镜像源已经替换成清华的镜像源了。

那么,对于这样镜像源出问题的错误(也许不能适用于所有的情况,但不妨试一试),我们可以用以下三步来解决:

sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update

镜像的问题刚刚解决好,接着又出现新的问题了,真的是一波接一波,安装一个软件还真的是很倒腾(可能是我的系统比较新的缘故,我用的是windows的Linux子系统,没怎么使用过所以缺少很多库)。这次遇到的问题是签证问题,比如我这里提示“NO_PUBKEY 51716619E084DAB9”,如下截图所示:

问题来还是要解决的,不然我的软件就安装不了了。那么对于这样的签证问题,我们可以通过以下命令来解决,记得把签证号替换为自己出问题的,如下所示:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9

至此,所有的错误都已经得到完美解决,不过需要提醒一下在安装R“tesseract”包前,需要在系统上已经安装好tesseract,因为R包本质也是调用系统里的tesseract,如果没有安装可以用以下命令来安装:

#系统上安装tesseract
sudo apt-get install tesseract-ocr

安装一个R包好像在探险一样,历经重重阻碍,现在终于可以安心的安装我需要的R包:

> install.packages("tesseract")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'https://cloud.r-project.org/src/contrib/tesseract_4.1.tar.gz'
Content type 'application/x-gzip' length 447439 bytes (436 KB)
==================================================
downloaded 436 KB

* installing *source* package ‘tesseract’ ...
** package ‘tesseract’ successfully unpacked and MD5 sums checked
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/usr/include/tesseract -I/usr/include/leptonica
Using PKG_LIBS=-ltesseract
Using CXX11CPP: g++ -E -std=gnu++11
** libs
rm -f tesseract.so RcppExports.o tesseract.o
g++ -std=gnu++11 -I/usr/share/R/include -DNDEBUG -I/usr/include/tesseract -I/usr/include/leptonica -I"/usr/local/lib/R/site-library/Rcpp/include"   -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-AitvI6/r-base-3.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RcppExports.cpp -o RcppExports.o
g++ -std=gnu++11 -I/usr/share/R/include -DNDEBUG -I/usr/include/tesseract -I/usr/include/leptonica -I"/usr/local/lib/R/site-library/Rcpp/include"   -fvisibility=hidden -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-AitvI6/r-base-3.4.4=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c tesseract.cpp -o tesseract.o
g++ -std=gnu++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o tesseract.so RcppExports.o tesseract.o -ltesseract -L/usr/lib/R/lib -lR
installing to /usr/local/lib/R/site-library/tesseract/libs
** R
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (tesseract)

虽然浪费了三四个小时的时间去解决问题,但最终还是安装好了我需要的R包,总算时间没有白白的浪费可以让我受伤的心灵得到一点安慰。

最后

  记录下今天自己遇到的问题,希望能帮助遇到同样问题的朋友们。emm,今天就分享到这里了。

上一篇下一篇

猜你喜欢

热点阅读