簡體   English   中英

為什么有些R的包無法安裝

[英]Why some R packages can't be installed

我用了一段時間R,安裝包的時候一切正常。 最近,我將我的Ubuntu 16.04上的 R 從3.4.4升級到4.0.2 ,然后我嘗試安裝 package imputeTS作為

> install.packages("imputeTS")
Installing package into ‘/home/.../R/x86_64-pc-linux-gnu-library/4.0’
(as ‘lib’ is unspecified)
also installing the dependencies ‘png’, ‘gridtext’, ‘ggtext’

trying URL 'https://cloud.r-project.org/src/contrib/png_0.1-7.tar.gz'
Content type 'application/x-gzip' length 24990 bytes (24 KB)
==================================================
downloaded 24 KB

trying URL 'https://cloud.r-project.org/src/contrib/gridtext_0.1.1.tar.gz'
Content type 'application/x-gzip' length 441462 bytes (431 KB)
==================================================
downloaded 431 KB

trying URL 'https://cloud.r-project.org/src/contrib/ggtext_0.1.0.tar.gz'
Content type 'application/x-gzip' length 1849875 bytes (1.8 MB)
==================================================
downloaded 1.8 MB

trying URL 'https://cloud.r-project.org/src/contrib/imputeTS_3.1.tar.gz'
Content type 'application/x-gzip' length 3015320 bytes (2.9 MB)
==================================================
downloaded 2.9 MB

* installing *source* package ‘png’ ...
** package ‘png’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      `libpng-config --cflags` -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c read.c -o read.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      `libpng-config --cflags` -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c write.c -o write.o
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o png.so read.o write.o -L/home/.../anaconda/lib -lpng16 -lm -lz -lm -L/usr/lib/R/lib -lR
installing to /home/.../R/x86_64-pc-linux-gnu-library/4.0/00LOCK-png/00new/png/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘png’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/.../R/x86_64-pc-linux-gnu-library/4.0/00LOCK-png/00new/png/libs/png.so':
  libpng16.so.16: cannot open shared object file: No such file or directory
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/png’
ERROR: dependency ‘png’ is not available for package ‘gridtext’
* removing ‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/gridtext’
ERROR: dependency ‘gridtext’ is not available for package ‘ggtext’
* removing ‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/ggtext’
ERROR: dependency ‘ggtext’ is not available for package ‘imputeTS’
* removing ‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/imputeTS’

The downloaded source packages are in
    ‘/tmp/RtmpZubgYt/downloaded_packages’
Warning messages:
1: In install.packages("imputeTS") :
  installation of package ‘png’ had non-zero exit status
2: In install.packages("imputeTS") :
  installation of package ‘gridtext’ had non-zero exit status
3: In install.packages("imputeTS") :
  installation of package ‘ggtext’ had non-zero exit status
4: In install.packages("imputeTS") :
  installation of package ‘imputeTS’ had non-zero exit status

然后

> library(imputeTS)
Error in library(imputeTS) : there is no package called ‘imputeTS’

我嘗試安裝與install.packages("imputeTS", dependencies = TRUE)相同的 package 但這給了我相同installation of package 'imputeTS' had non-zero exit status

接下來,我嘗試安裝包Hmiscmice 同樣的結果是第一個 package as mice安裝成功!

還有兩條評論,第一條是升級R后開始出現這個語句(as 'lib' is unspecified) 。第二條,我不確定是否相關,是我的linux上沒有空間!

那么我怎樣才能成功安裝所需的軟件包呢?

只是一個總結,人們可以更好地找到評論中給出的正確答案並理解錯誤消息

這不是與imputeTS package 特別相關的問題。

這可以在錯誤消息的這一部分中看到

錯誤:package 或 dyn.load(文件,DLLpath = DLLpath,...)中的 'png' 的命名空間加載失敗:無法加載共享 object '/home/.../R/x86_64-pc-linux-gnu- library/4.0/00LOCK-png/00new/png/libs/png.so': libpng16.so.16: 無法打開共享 object 文件: 沒有這樣的文件或目錄

嘗試安裝png package 時實際發生錯誤。

這與imputeTS package 有什么關系?

你可以在這里看到這個:

錯誤:加載失敗

  • 刪除 '/home/.../R/x86_64-pc-linux-gnu-library/4.0/png' 錯誤:依賴項 'png' 不適用於 package 'gridtext'
  • 刪除 '/home/.../R/x86_64-pc-linux-gnu-library/4.0/gridtext' 錯誤:依賴項 'gridtext' 不適用於 package 'ggtext'
  • 刪除 '/home/.../R/x86_64-pc-linux-gnu-library/4.0/ggtext' 錯誤:依賴項 'ggtext' 不適用於 package 'imputeTS'
  • 刪除'/home/.../R/x86_64-pc-linux-gnu-library/4.0/imputeTS'

R 包相互構建並導入其他包的功能。 在這種情況下,imputeTS 導入 ggtext,后者導入 gridtext,后者導入 png。

如此多的依賴關系,如果png安裝失敗,這會影響所有其他包。

幸運的是,這部分錯誤消息也給出了提示,可能是哪里出了問題:

無法加載共享 object '/home/.../R/x86_64-pc-linux-gnu-library/4.0/00LOCK-png/00new/png/libs/png.so': libpng16.so.16: 無法打開共享 object 文件:沒有這樣的文件或目錄

缺少png package 本身所依賴的庫。 如果沒有這個庫, png的安裝將失敗並導致所有這些提到的問題。

所以只需像這樣安裝庫:

sudo apt-get install libpng16-16

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM