Linux Centos 7 无法在 R 上安装 png 和 EBImage 包

Linux Centos 7 无法在 R 上安装 png 和 EBImage 包

我正在努力在我的 Linux Centos 7 机器上安装 png 和 EBImage R 包。我总是收到此错误消息:

    Error: package or namespace load failed for ‘png’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/home/rico/R/x86_64-redhat-linux-gnu-library/3.6/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/rico/R/x86_64-redhat-linux-gnu-library/3.6/png’
Warning in install.packages :
  installation of package ‘png’ had non-zero exit status

The downloaded source packages are in
    ‘/tmp/RtmpX4o4D5/downloaded_packages’

我尝试这样做:

yum install libpng-devel

它输出我:

Package 2:libpng-devel-1.5.13-7.el7_2.x86_64 already installed and latest version
Nothing to do

知道如何解决这个问题吗?谢谢。

答案1

看起来您的 R 软件包需要libpng16.so.16(1.6. 分支),而 CentOS 7 上的默认版本是您安装的(1.5 分支,可通过libpng软件包获取)。

如果你不介意使用商业的存储库,libpng 1.6 位于GetPageSpeed 存储库

sudo yum -y install https://extras.getpagespeed.com/release-latest.rpm
sudo yum install libpng16

或者,尽管由于将非打包文件放在根文件系统上而非常不鼓励,但您可以使用位于以下位置的 libpng16 的预编译二进制文件这里:提取存档,从预编译的库文件创建符号链接到libpng16.so.16,提供从存档到R包安装的自定义包含路径等...

答案2

由于某种原因,在 RHEL/Centos 7 上使用 Anaconda 会导致此问题。可能是因为 Anaconda 安装了更新版本的libpng.

png通过暂时从 R 识别中删除 anaconda,我能够安装另一个具有相同包依赖项的包。PATH完成此操作后,该png包及其依赖包安装就没有任何问题。

答案3

我设法在我的 Linux centos 7 机器上安装 EBImage。sudo cp /usr/local/lib/libpng16.so.16 /usr/lib解决了问题

相关内容