題 在Arch Linux中安裝程序的位置?


我幾乎是Linux場景的新手。我最近下載了Matlab進行安裝。我解壓縮文件並運行 ./install 啟動嚮導。當我踩到它時,它要求我提供一個默認值為的安裝路徑 /usr/local/Matlab。當我查看該目錄時,第一次關閉似乎並不正確,看起來更加不正確。

/usr/local/ 具有 bin etc games include lib man sbin share src

話雖這麼說,但這是安裝程序最有效的地方是值得懷疑的。大多數程序安裝在哪裡?我讀過它在很大程度上取決於Linux風味。

經驗豐富的Linux用戶的任何建議?


5
2018-05-22 00:16


起源


您可以在任何所需的文件夾中安裝應用程序。 - Ramhound
當然,但就Linux系統的層次結構而言,它最有意義嗎?我沒想到有 Matlab 庫bin目錄中的目錄很有意義。 - sherrellbc
/ usr / bin或/ usr / local / bin作為用戶安裝的應用程序 - EkriirkE
它現在要求一條路徑將符號鏈接放置到Matlab腳本。有什麼建議?我安裝了Matlab /usr/local/bin/Matlab - sherrellbc
有些約定,但在那些你放東西的約定中由你決定。我親自把專有軟件放入 /opt。您可以將符號鏈接放在PATH中的任何位置。 - user55325


答案:


在Arch Linux中安裝應用程序有幾個地方:

  • 對於遵循文件系統層次結構標準並由系統包管理器安裝的應用程序(如果是Arch pacman/usr/ 樹被使用。應用程序最常用的部件是:
    • /usr/bin/  - 這是應用程序的二進製文件(可執行文件)所在的位置
    • /usr/share/  - 這是應用程序的其他資源(通常是不可變類)
  • 對於遵循FHS原則的應用程序,但是每手安裝(通常通過編譯 make 並通過安裝 make install/usr/local/ 是對的地方。這裡的層次結構模仿了那個 /usr/ 它的目的是將手動安裝的東西與自動存儲庫內容分開。請注意,如果您打算使本地軟件包保持最新並安裝大量軟件包,請使用 AURAUR幫手 和學習 如何維護包 可能比過度擁擠更好 /usr/local/
  • 對於具有更多整體文件夾結構的應用程序(例如Matlab), /opt/ 是要走的路。人們通常只是將文件夾放在那裡,例如 /opt/MonolithicApp//opt/Matlab/
  • 因為遊戲往往具有整體文件夾結構, /usr/local/games/ 是指定放置這些的地方,除此之外 /opt/。應該使用哪一個由用戶自行決定。

為了保持方便,還有一些補充 $PATH 在安裝程序的情況下是必要的 /opt/。如果只有一個二進製文件,我傾向於只創建一個符號鏈接 /usr/local/bin/

如果有超過一個/兩個二進製文件,則它要求a PATH="$PATH:/opt/MonolithicApp/bin/" 另外在shell配置文件中的某處。

資料來源:


13
2018-05-23 10:59



經過幾年的Linux使用後,我正在回來。我傾向於遵循這個慣例,它運作得很好。我也傾向於使用符號鏈接來調用用戶安裝的二進製文件。但是,某些二進製文件假定它們是從其根目錄調用的。為了解決這個問題,我一直在使用放在應用程序根目錄中的簡單腳本(例如 /usr/Matlab/matlab-start.sh)使用 dirname 和 realpath 至 cd 在傳遞之前到應用程序的根目錄 $@ 到目標可執行文件。二進製文件的慣例是什麼? /usr/bin 還有位置要求? - sherrellbc
我不確定你的意思是什麼樣的二進製文件 - 存檔 /usr/bin 只應由您的包管理器(例如pacman,AUR幫助程序)放在那裡,正確構建的包沒有'位置要求',就像你說的那樣。也許舉例說明你的案例可能有幫助嗎? - Zaroth