
我需要運行 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-dev
和libpng12-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 一起使用。