解決R語言中install_github中無法安裝遇到的問題
首先,讓我們來進入常規步驟
我安裝的是recharts包,正常的寫法呢,就是以下這個樣子:
install.packages("devtools") #devtools::install_github("madlogos/recharts")
第一個問題:
然而對於今天的我來說,那就太天真瞭,首先踏入的第一個坑:
無法打開URL’http://yihui.name/xran/src/contrib/PACKAGES’ Warning in install.packages : 從zip文件中抽取1時出瞭錯
類似於無法訪問的錯誤,第一步的解決辦法,就是改變包的鏡像。
在Tools->Global Options->packages->change->china Beijing.
如下圖所示:
這可能是R新版本的默認設置為外國版本,之前的版本上沒有遇到過類似鏡像的問題,解決完這裡,如果是稍微簡單點的問題就可以被解決瞭,然而我的路才剛剛開始。
第二個問題:
要在https://cran.rstudio.com/bin/windows/Rtools/網站中下載rtools錯誤大概就是這麼寫的,具體我已經無法還原瞭,相信這個報錯大傢都能看懂,下載未被凍結或鎖定的rtools,註意安裝時要選擇自動添加路徑,不然還得手動添加,容易出錯。這一步下來,正常的包都可以安裝瞭。
第三個問題
錯誤為:
failed to receive handshake ssl/tls connection failed github
第一種方法:
始終無法訪問github,查過許多資料,有一部分說是IE出瞭問題,在選項中一次勾選SSL之類的,然而我一開始沒有找到這個地方,不過好像這個方法蠻簡單,大傢如果遇到類似問題可以去百度嘗試一下,
第二種方法:
很可能是因為你的網絡被設置而代理,或者是你有下載翻墻軟件串改瞭你的internet設置,具體操作如下:打開IE瀏覽器,選擇工具->internet選項->連接->局域網設置->點擊自動設置(若勾選,則點為不勾選。若不勾選,則點為勾選),下面的LAN設置不要勾選
第三種方法:
打開git bash,輸入下列代碼
$ git config --global http.sslBackend "openssl" $ git config --global http.sslCAInfo c://program files//R//R-3.6.3//library//openssl//cacert.pem(此為R中cacert.pem的文件路徑)
運行完之後退出,重新打開R,再執行安裝命令
install.packages("devtools") devtools::install_github("madlogos/recharts")
就OK瞭。
補充:R安裝xml2 (安裝devtools)
安裝devtools
今天看到瞭一個R上的一個包,似乎是要用到devtools。發現我linux電腦上的R並沒有裝devtools這個包。想著直接安裝一下,沒想到卻意外頻發。
R:R-4.0.0
devtools需要很多依賴包,用R自帶的
install.packages("devtools")
可以很好地解決這些問題,但是發現安裝失敗。仔細檢查後發現是安裝xml2的時候出現瞭意外。
xml2這個包沒有裝上,導致瞭最終devtools沒有安裝成功。
安裝xml2時報錯:
Error : unable to load shared object ‘/home/Litedg/Programs/R-4.0.0/lib64/R/library/00LOCK-xml2/00new/xml2/libs/xml2.so’: libiconv.so.2: cannot open shared object file: No such file or directory
開始以為是沒有裝libxml2、libxml2-devel。用yum裝過瞭一下,發現隻是版本有些舊,但還是有的。
然後發現在報錯的最前面:
— Please select a CRAN mirror for use in this session —
trying URL ‘https://cloud.r-project.org/src/contrib/xml2_1.3.2.tar.gz’
Content type ‘application/x-gzip’ length 271876 bytes (265 KB)
==================================================
downloaded 265 KB
* installing *source* package ‘xml2’ …
** package ‘xml2’ successfully unpacked and MD5 sums checked
** using staged installation
Found pkg-config cflags and libs!
Using PKG_CFLAGS=-I/home/Litedg/Programs/anaconda3/include/libxml2 -I/home/Litedg/Programs/anaconda3/include
Using PKG_LIBS=-L/home/Litedg/Programs/anaconda3/lib -lxml2 -L/home/Litedg/Programs/anaconda3/lib -lz –
L/home/Litedg/Programs/anaconda3/lib -llzma -lpthread -L/home/Litedg/Programs/anaconda3/lib -liconv –
L/home/Litedg/Programs/anaconda3/lib -licui18n -licuuc -licudata -lm -ldl
** libs
所以應該是由於調用瞭anaconda3下面的libxml2導致的原因。想在環境變量中將anaconda3給註釋掉,但是會調到pymol下面,後來發現直接修改xml2安裝包的configure就好瞭。
找到xml2的安裝包。在報錯的最後面會給出:
The downloaded source packages are in
‘/tmp/RtmpUV7uZp/downloaded_packages’
Updating HTML index of packages in ‘.Library’
Making ‘packages.html’ … done
Warning message:
In install.packages(“xml2”) :
installation of package ‘xml2’ had non-zero exit status
找到這個目錄,解壓:
cd /tmp/RtmpUV7uZp/downloaded_packages tar -zxvf xml2_1.3.2.tar.gz
修改其中configure文件:
xml2-config --version >/dev/null 2>&1 if [ $? -eq 0 ]; then PKGCONFIG_CFLAGS=`xml2-config --cflags` PKGCONFIG_LIBS=`xml2-config --libs` # MacOS versions El Capitan and later ship a xml2-config which appends `xcrun # --show-sdk-path` to the xml2-config. So we remove it if it is present. # (https://stat.ethz.ch/pipermail/r-sig-mac/2016-September/012046.html) if [ "$OS_TYPE" = "Darwin" ] && [ "$OS_VERSION" -gt "13" ] && [ "$OS_VERSION" -lt "17" ]; then PKGCONFIG_CFLAGS=`echo $PKGCONFIG_CFLAGS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"` PKGCONFIG_LIBS=`echo $PKGCONFIG_LIBS | perl -pe "s{\Q\`xcrun -show-sdk-path\`\E}{}"` fi # Fix a missing libxml2 directory on the requested include directory # https://github.com/r-lib/xml2/issues/296 if [ "${OS_TYPE}" = "Darwin" ] && echo "${PKGCONFIG_CFLAGS}" | grep -sq "/usr/include$"; then PKGCONFIG_CFLAGS="$PKGCONFIG_CFLAGS/libxml2" fi else pkg-config --version >/dev/null 2>&1 if [ $? -eq 0 ]; then PKGCONFIG_CFLAGS=`pkg-config --cflags $PKG_CONFIG_NAME` PKGCONFIG_LIBS=`pkg-config --libs $PKG_CONFIG_NAME` fi fi
改成:
if [ $(command -v pkg-config) ]; then PKGCONFIG_CFLAGS=$(pkg-config --cflags $PKG_CONFIG_NAME) PKGCONFIG_LIBS=$(pkg-config --libs $PKG_CONFIG_NAME) fi
即可。保存退出。
使用R CMD進行安裝(在xml2目錄下)
R CMD INSTALL ./
即可順利安裝xml2包。
其餘的包使用
install.packages("devtools")
繼續安裝即可~
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- None Found