我正在努力在我的 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
解決了問題