Shared-Library
如何處理使用過時共享庫的應用程序?
我正在嘗試在尋找 libncurses.so.5 的 Linux 滾動發行版上執行 GDB,但係統安裝了版本 6。我已經看到人們使用 ln 將 libncurses.so.5 連結到版本 6 的解決方案,但這似乎不是一個好的做法(最近可能會棄用/刪除這些東西)。
將舊庫連結到新庫是否可以接受,還是有更好的做法?
有關特定問題的更多詳細資訊:
- 帶有核心 5.8 的 Linux Manjaro
- 應用程序 (STCubeIDE) 未從 pacman 儲存庫安裝(手動安裝)
將舊庫連結到新庫是否可以接受
不。
由於二進制不兼容,程序可能隨時崩潰。
/usr
通常,除了使用發行版工具( , 等)之外,apt
弄亂yum
系統文件(例如 下的所有內容)是一個愚蠢的想法。有更好的做法嗎?
保留較舊的庫(例如在 下
/opt/oldlibs
)並讓程序通過LD_LIBRARY_PATH
環境變數使用它們。ld.so(8)手冊頁中的詳細資訊。
將舊庫連結到新庫是否可以接受,還是有更好的做法?
它可能會或可能不會工作,具體取決於所使用的功能。
通常這是一種不好的做法,但是如果您不想追查舊庫並且您的舊應用程序可以使用此 hack,那麼沒有人會反對。