/usr/local/lib 包含未安裝 Aptitude 報告的函式庫

/usr/local/lib 包含未安裝 Aptitude 報告的函式庫

我正在嘗試在 Ubuntu 上建立一個使用特定庫 (SDL) 的專案。本專案使用舊版的函式庫(libSDL-1.2)。我錯誤地安裝了最新的庫,但後來將其刪除了。不過,我仍然可以在多個 Ubuntu 庫目錄中找到它的蹤跡。

在此輸入影像描述

在某些目錄中有正確的版本(/usr/lib/i386-linux-gnu/)而在其他版本中有最新的、錯誤的版本(/usr/local/lib/)。為什麼會出現這種不一致以及如何完全刪除 libSDL2?

答案1

/usr/local/包含未由套件管理器安裝的文件,無論是由於手動安裝還是透過安裝程式腳本從套件中下載的其他文件(儘管這些文件大多位於/opt/)。

因此,APT 不知道該目錄下的檔案。如果您手動安裝了庫,例如透過在其中提取存檔,您也應該能夠以相同的方式刪除它們。
但是,如果您沒有手動安裝它們,請注意。在這種情況下,請告訴我們您如何安裝它們,以獲得進一步更好的幫助。

另一種可能性是這些庫可能在那裡,因為它們可能是由其他東西下載的,而不是使用 APT 安裝 libsdl2 時下載的。例如 Valve 的 Source Engine 使用 SDL2。當您安裝基於來源的遊戲(例如《半條命》或《傳送門》)時,Steam 將下載自己的庫(儘管它將它們保存在用戶主目錄中)。可能來自類似的東西。如果你不知道它們從哪裡來,就別管它們了。如果操作正確(見下文),它們不會幹擾您的開發,並且刪除可能會破壞某些其他應用程式。

如果您想繼續使用 SDL1.2,您應該能夠在不刪除其他庫的情況下這樣做:告訴編譯器/連結器使用舊的庫。 SDL2 共享庫總是被調用libsdl2-....so,因此只需連結到正確的庫即可,而無需sdl2在其中添加。

相關內容