在 Ubuntu 上更新 libpng

在 Ubuntu 上更新 libpng

我需要運行 Ubuntulibpng實用程序convert,當我運行時,我收到一條錯誤訊息,指出我的版本libpng已過時,必須更新。所以,我走了通常的路線apt-get install,但由於我現在不記得的原因,這並沒有解決問題。這就是事情變得混亂的地方。

我下載了原始程式碼libpng,進行了製作,然後進行了安裝。在 中建立了可共享庫後/usr/local/lib,立即轉換報告:

convert: error while loading shared libraries: libpng.so.2: cannot open shared object file: No such file or directory

根據 StackExchange 其他地方一位樂於助人的人的建議,我apt-get install再次嘗試,嘗試獲取並安裝軟體包libpng12-devlibpng12-0.然而,這兩次嘗試都產生了訊息

libpng12-dev is already the newest version
libpng12-0 is already the newest version

....所以沒有安裝任何東西。可能是我在製作原始碼方面的笨拙嘗試把事情搞砸了。有什麼辦法可以清理東西嗎?例如,安裝舊版的 libpng 然後安裝最新版本?

之後:

根據dogbert的建議,我查閱了這篇文章https://www.debian-administration.org/article/176/Reinstalling_packages_to_fix_problems並發現我可以強制刪除一個包,而不會同時刪除所有依賴包:

dpkg --purge --force-depends libpng12-0

所以,我這樣做了,然後重新安裝了libpng12-0。但是,convert仍然報告相同的錯誤。好吧,也許我需要重新安裝,convert因為libpng12-0庫可能不在預期的位置。convert是 的一部分imagemagick,所以我卸載了它。但是,convert仍然可以在命令列中使用,因此卸載imagemagick並不能消除它。重新安裝了imagemagick。結果相同:convert仍然抱怨找不到libpng.so.2.

搜尋了整個硬碟,發現libpng.so*任何地方都不存在任何文件。顯然安裝該套件並沒有創建所需的檔案。

答案1

libpng.so.2 應該是 libpng-1.0.x 的共用函式庫(目前版本是 1.0.63)。你有「convert」(imagemagick的一部分),顯然是用libpng-1.0.x建構的,所以你需要透過apt-get刪除並重新安裝imagemagick。一旦工作正常,您可以再次嘗試從 imagemagick.org 安裝較新版本的 imagemagick,它應該可以與 libpng12 一起使用。

相關內容