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,我能夠安裝另一個具有相同套件依賴項的套件PATHpng

答案3

我設法在我的 Linux centos 7 機器上安裝 EBImage。sudo cp /usr/local/lib/libpng16.so.16 /usr/lib解決了問題

相關內容