前言
??今天安裝R包‘tesseract’花式報錯蟆淀,所以就記錄了一下拯啦,同時也希望能給其他遇到同樣錯誤的人一點幫助。R的擴(kuò)展包雖然使用起來很開心熔任,但有時候安裝起來卻不是那么容易褒链,可能遇到各種各樣的錯誤,不過有一點慶幸的是R的錯誤提示會給出相應(yīng)的提示及解決方向疑苔,這個還是挺友好的甫匹。比如我今天遇到的問題是缺少系統(tǒng)庫,如下圖所示提示:
從上面的錯誤提示可以看出提示我的系統(tǒng)缺少了‘libcurl’庫惦费,而且還給出了解決方案兵迅,那我們按著錯誤提示去做就可以了。比如我用的是Ubuntu系統(tǒng)趁餐,那只需安裝“l(fā)ibcurl4-openssl-dev”就可以了喷兼,安裝命令如下:
sudo apt-get install libcurl4-openssl-dev
但是我在安裝“l(fā)ibcurl4-openssl-dev”過程中Linux系統(tǒng)又報錯了,可以看出來是鏡像源出問題了后雷,其實為了加速網(wǎng)絡(luò)我的系統(tǒng)鏡像源已經(jīng)替換成清華的鏡像源了季惯。
那么吠各,對于這樣鏡像源出問題的錯誤(也許不能適用于所有的情況,但不妨試一試)勉抓,我們可以用以下三步來解決:
sudo apt-get clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update
鏡像的問題剛剛解決好贾漏,接著又出現(xiàn)新的問題了,真的是一波接一波藕筋,安裝一個軟件還真的是很倒騰(可能是我的系統(tǒng)比較新的緣故纵散,我用的是windows的Linux子系統(tǒng),沒怎么使用過所以缺少很多庫)隐圾。這次遇到的問題是簽證問題伍掀,比如我這里提示“NO_PUBKEY 51716619E084DAB9”,如下截圖所示:
問題來還是要解決的暇藏,不然我的軟件就安裝不了了蜜笤。那么對于這樣的簽證問題,我們可以通過以下命令來解決盐碱,記得把簽證號替換為自己出問題的把兔,如下所示:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
至此,所有的錯誤都已經(jīng)得到完美解決瓮顽,不過需要提醒一下在安裝R“tesseract”包前县好,需要在系統(tǒng)上已經(jīng)安裝好tesseract,因為R包本質(zhì)也是調(diào)用系統(tǒng)里的tesseract暖混,如果沒有安裝可以用以下命令來安裝:
#系統(tǒng)上安裝tesseract
sudo apt-get install tesseract-ocr
安裝一個R包好像在探險一樣缕贡,歷經(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)
雖然浪費了三四個小時的時間去解決問題儒恋,但最終還是安裝好了我需要的R包善绎,總算時間沒有白白的浪費可以讓我受傷的心靈得到一點安慰。
最后
??記錄下今天自己遇到的問題诫尽,希望能幫助遇到同樣問題的朋友們禀酱。emm,今天就分享到這里了牧嫉。