debug: 安裝“tesseract”R包引發(fā)的一些列報(bào)錯(cuò)

前言

??今天安裝R包‘tesseract’花式報(bào)錯(cuò),所以就記錄了一下,同時(shí)也希望能給其他遇到同樣錯(cuò)誤的人一點(diǎn)幫助。R的擴(kuò)展包雖然使用起來(lái)很開心,但有時(shí)候安裝起來(lái)卻不是那么容易,可能遇到各種各樣的錯(cuò)誤,不過(guò)有一點(diǎn)慶幸的是R的錯(cuò)誤提示會(huì)給出相應(yīng)的提示及解決方向,這個(gè)還是挺友好的。比如我今天遇到的問(wèn)題是缺少系統(tǒng)庫(kù),如下圖所示提示:

從上面的錯(cuò)誤提示可以看出提示我的系統(tǒng)缺少了‘libcurl’庫(kù),而且還給出了解決方案,那我們按著錯(cuò)誤提示去做就可以了。比如我用的是Ubuntu系統(tǒng),那只需安裝“l(fā)ibcurl4-openssl-dev”就可以了,安裝命令如下:

sudo apt-get install libcurl4-openssl-dev

但是我在安裝“l(fā)ibcurl4-openssl-dev”過(guò)程中Linux系統(tǒng)又報(bào)錯(cuò)了,可以看出來(lái)是鏡像源出問(wèn)題了,其實(shí)為了加速網(wǎng)絡(luò)我的系統(tǒng)鏡像源已經(jīng)替換成清華的鏡像源了。

那么,對(duì)于這樣鏡像源出問(wèn)題的錯(cuò)誤(也許不能適用于所有的情況,但不妨試一試),我們可以用以下三步來(lái)解決:

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

鏡像的問(wèn)題剛剛解決好,接著又出現(xiàn)新的問(wèn)題了,真的是一波接一波,安裝一個(gè)軟件還真的是很倒騰(可能是我的系統(tǒng)比較新的緣故,我用的是windows的Linux子系統(tǒng),沒(méi)怎么使用過(guò)所以缺少很多庫(kù))。這次遇到的問(wèn)題是簽證問(wèn)題,比如我這里提示“NO_PUBKEY 51716619E084DAB9”,如下截圖所示:

問(wèn)題來(lái)還是要解決的,不然我的軟件就安裝不了了。那么對(duì)于這樣的簽證問(wèn)題,我們可以通過(guò)以下命令來(lái)解決,記得把簽證號(hào)替換為自己出問(wèn)題的,如下所示:

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

至此,所有的錯(cuò)誤都已經(jīng)得到完美解決,不過(guò)需要提醒一下在安裝R“tesseract”包前,需要在系統(tǒng)上已經(jīng)安裝好tesseract,因?yàn)镽包本質(zhì)也是調(diào)用系統(tǒng)里的tesseract,如果沒(méi)有安裝可以用以下命令來(lái)安裝:

#系統(tǒng)上安裝tesseract
sudo apt-get install tesseract-ocr

安裝一個(gè)R包好像在探險(xiǎn)一樣,歷經(jīng)重重阻礙,現(xiàn)在終于可以安心的安裝我需要的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)

雖然浪費(fèi)了三四個(gè)小時(shí)的時(shí)間去解決問(wèn)題,但最終還是安裝好了我需要的R包,總算時(shí)間沒(méi)有白白的浪費(fèi)可以讓我受傷的心靈得到一點(diǎn)安慰。

最后

??記錄下今天自己遇到的問(wèn)題,希望能幫助遇到同樣問(wèn)題的朋友們。emm,今天就分享到這里了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容