Software-Installation
我在哪裡儲存預編譯的二進製文件?
由於預編譯的二進製文件只是可移植文件:在不使我的系統混亂的情況下手動儲存它們的正確位置是什麼?
通常的地方是
/usr/local
或/opt
更大的完整應用程序。我將所有自編譯的應用程序放入
/usr/local/stow/application_name
, usingmake install
或一些類似的命令來複製整個層次結構。然後使用
stow
它們來管理符號連結。優點是所有路徑(二進製文件、庫)都是開箱即用的,並且應用程序分離得很好,我可以輕鬆地再次刪除它們。這也是我將預編譯的二進製文件
bin
放入application_name
.由於預編譯的二進製文件只是可移植文件
我不知道你的意思。預編譯的二進製文件非常不可移植,這取決於編譯它們的架構。您也不知道它們是為哪個庫版本編譯的。在該版本中,您的系統上可能不存在這些庫。
對於您的 Pomotroid 範例,如果我想在我的電腦上使用它,我會這樣做:
- 他們有一個
.deb
包,我使用的是 Debian 派生的發行版,所以我只需下載它並將其安裝在我的系統上。- 下一個變體將是複製下的儲存庫
/usr/local/src/pomotroid
,在此執行建構,修改安裝過程以使用/usr/local/stow/pomotroid
,執行安裝過程,然後使用stow
. 這就是我處理系統上大多數自編譯軟體的方式。- 第三個變體是向
rpm
儲存庫添加一個包建構過程,提出一個拉取請求,並在將來為我(以及需要包rpm
的其他所有人)提供發布包rpm
- 第四種變體是獲取分佈式 tar 文件,將其解壓縮為
/usr/local/app/pomotroid
(/opt/app/pomotroid
也可以),然後編寫一個腳本,LD_LIBRARY_PATH
在執行主程序之前設置(之前從未嘗試安裝電子應用程序) .tar 文件包括很多動態庫,我的系統上也有可能不同的版本,所以我真的不希望它們出現在預設庫路徑中以供其他程序使用 - 這可能會嚴重擾亂我的系統。
如果我想定期更新到最新版本,我要麼開始編寫安裝過程的腳本,要麼花一些時間來
rpm
建構一個包。