Linux

Linux Centos 7 無法在 R 上安裝 png 和 EBImage 包

  • July 22, 2020

我正在努力在我的 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

知道如何解決這個問題嗎?謝謝。

看起來您的 R 包需要libpng16.so.16(1.6. 分支),而 CentOS 7 上的預設設置是您安裝的(1.5 分支,可通過libpng包獲得)。

如果您不介意使用商業儲存庫,可以在GetPageSpeed儲存庫中獲得 libpng 1.6 :

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

或者,儘管由於將非打封包件放在根文件系統上而非常不鼓勵,但您可以使用位於此處的 libpng16 的預編譯二進製文件:提取存檔,從預編譯的庫文件創建符號連結到libpng16.so.16,提供從存檔到R包安裝等…

出於某種原因,在 RHEL/Centos 7 上安裝 Anaconda 會導致此問題。可能是因為 Anaconda 安裝了更新版本的libpng.

png通過暫時從 R 辨識的中刪除 anaconda,我能夠安裝具有相同包依賴關係的另一個包PATH。一旦我這樣做了,png安裝包及其依賴包就沒有問題。

引用自:https://unix.stackexchange.com/questions/573355