Shared-Library

如何處理使用過時共享庫的應用程序?

  • August 27, 2020

我正在嘗試在尋找 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,那麼沒有人會反對。

引用自:https://unix.stackexchange.com/questions/606515