首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么有些R包不能安装

为什么有些R包不能安装
EN

Stack Overflow用户
提问于 2020-09-22 10:24:27
回答 1查看 1.4K关注 0票数 1

我使用R已经有一段时间了,在安装软件包时一切都是正常的。最近,我将我的Ubuntu 16.04上的R从3.4.4升级到4.0.2,然后尝试将包imputeTS安装为

代码语言:javascript
运行
复制
> 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

然后

代码语言:javascript
运行
复制
> library(imputeTS)
Error in library(imputeTS) : there is no package called ‘imputeTS’

我试图安装与install.packages("imputeTS", dependencies = TRUE)相同的软件包,但这给了我相同的结果-- installation of package ‘imputeTS’ had non-zero exit status

接下来,我尝试安装软件包Hmiscmice。同样的结果也适用于成功安装mice的第一个包!

还有两条评论,第一条是这个声明(as ‘lib’ is unspecified)在升级后才开始出现。第二,我不确定是否相关,是我的linux上没有空间!

那么,如何成功地安装所需的软件包呢?

EN

回答 1

Stack Overflow用户

发布于 2020-10-02 03:34:30

总结一下,人们可以更好地找到评论中给出的正确答案,并更好地理解错误信息。

这不是与imputeTS 包特别相关的问题.

这可以在错误消息的这一部分中看到。

'/home/.../R/x86_64-pc-linux-gnu-library/4.0/00LOCK-png/00new/png/libs/png.so':错误:

(文件,DLLpath = DLLpath,.)中的“png”包或命名空间加载失败:无法加载共享对象( libpng16.so.16:无法打开共享对象文件:没有这样的文件或目录)

此错误实际上发生在试图安装png包时。

这与imputeTS包有什么关系?

你可以在这里看到:

错误:加载失败

删除‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/png’错误的

  • :依赖“png”不可用于包‘gridtext’
  • removing‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/gridtext’错误:依赖“网格文本”不能用于包‘ggtext’
  • removing‘/home/./R/x86_64-pc-linux-gnu-库/4.0/ggtext‘错误:依赖关系’ggtext‘对于包‘imputeTS’
  • removing‘/home/.../R/x86_64-pc-linux-gnu-library/4.0/imputeTS’

不可用

R包相互构建,并导入其他包的函数。在本例中,imputeTS导入ggtext,后者导入网格文本,后者导入png。

因此,依赖项的顺序相当大,如果png安装失败,则会影响所有其他包。

幸运的是,错误消息的这一部分也给出了提示,什么可能是错误的:

无法加载共享对象的'/home/.../R/x86_64-pc-linux-gnu-library/4.0/00LOCK-png/00new/png/libs/png.so':libpng16.so.16:无法打开共享对象文件:没有这样的文件或目录

缺少png包本身所依赖的库。如果没有这个库,png的安装就会失败,并导致上述所有问题。

所以,只需像这样安装库:

代码语言:javascript
运行
复制
sudo apt-get install libpng16-16
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64007769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档