Directory-Structure
linux系統上應用程序和使用者文件的放置
我應該在哪些目錄中放置以下內容?
我有一個包含幾個.net 程序集的應用程序、一個預設數據庫(包含預設應用程序設置)、一個包含 100 個圖像的目錄、一個聲音目錄(例如 mp3)。
例如
somedir/myapp.exe somedir/myassembly1.dll somedir/myassembly2.dll somedir/images/1/image1.png somedir/images/1/image2.png somedir/images/2/image1.png somedir/sounds/1/sound1.mp3 somedir/sounds/1/sound2.mp3 somedir/sounds/2/sound1.mp3
一個要求是我希望我的使用者可以替換他們認為合適的聲音和圖像,因此基本上該路徑(例如
/var
或/usr
)通常應該對普通使用者具有寫訪問權限。
如果您的應用程序需要使用者修改,則不應將其安裝到系統中,而是讓他們對其使用者主文件夾進行某種本地安裝。
$HOME/yourapp/{bin,images,sounds}
等等。大多數係統路徑(如 /var、/usr)不能也不應該被使用者寫入訪問。
另一種方法是正常安裝您的應用程序,但在 $HOME/.yourapp 中創建一種覆蓋,其中包括使用者更改的所有與系統預設值不同的內容。
您可以遵循XDG 基本目錄規範並將使用者可替換的東西放在一個目錄中,
$XDG_DATA_HOME
並將任何使用者配置文件放在一個目錄中$XDG_CONFIG_HOME
(預設分別為$HOME/.local/share/
和$HOME/.config/
)。我不確定這是否可以稱為標準的做事方式,但它肯定很受歡迎,因此您的使用者可能會熟悉它。