Software-Installation

我在哪裡儲存預編譯的二進製文件?

  • July 25, 2020

由於預編譯的二進製文件只是可移植文件:在不使我的系統混亂的情況下手動儲存它們的正確位置是什麼?

通常的地方是/usr/local/opt更大的完整應用程序。

我將所有自編譯的應用程序放入/usr/local/stow/application_name, usingmake install或一些類似的命令來複製整個層次結構。

然後使用stow它們來管理符號連結。優點是所有路徑(二進製文件、庫)都是開箱即用的,並且應用程序分離得很好,我可以輕鬆地再次刪除它們。

這也是我將預編譯的二進製文件bin放入application_name.

由於預編譯的二進製文件只是可移植文件

我不知道你的意思。預編譯的二進製文件非常不可移植,這取決於編譯它們的架構。您也不知道它們是為哪個庫版本編譯的。在該版本中,您的系統上可能不存在這些庫。


對於您的 Pomotroid 範例,如果我想在我的電腦上使用它,我會這樣做:

  1. 他們有一個.deb包,我使用的是 Debian 派生的發行版,所以我只需下載它並將其安裝在我的系統上。
  2. 下一個變體將是複製下的儲存庫/usr/local/src/pomotroid,在此執行建構,修改安裝過程以使用/usr/local/stow/pomotroid,執行安裝過程,然後使用stow. 這就是我處理系統上大多數自編譯軟體的方式。
  3. 第三個變體是向rpm儲存庫添加一個包建構過程,提出一個拉取請求,並在將來為我(以及需要包rpm的其他所有人)提供發布包rpm
  4. 第四種變體是獲取分佈式 tar 文件,將其解壓縮為/usr/local/app/pomotroid(/opt/app/pomotroid也可以),然後編寫一個腳本,LD_LIBRARY_PATH在執行主程序之前設置(之前從未嘗試安裝電子應用程序) .

tar 文件包括很多動態庫,我的系統上也有可能不同的版本,所以我真的不希望它們出現在預設庫路徑中以供其他程序使用 - 這可能會嚴重擾亂我的系統。

如果我想定期更新到最新版本,我要麼開始編寫安裝過程的腳本,要麼花一些時間來rpm建構一個包。

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