Friday, November 08, 2024

Linux 上應用程式利用使用者資料夾的標準

整個 Linux 作業系統怎麼安排檔案系統,有 Filesystem Hierarchy Standard (FHS) 作為參考標準,在使用者資料夾 (Home directory; ~/) 的部分,目前主要應該都是參考 XDG Base Directory 來放。

使用者設定: $XDG_CONFIG_HOME (~/.config/)
使用者為應用程式做的偏好設定。
使用者資料: $XDG_DATA_HOME (~/.local/share/)
存放類似書籤、憑證、郵件、金鑰等使用者操作應用程式所得到或產生的資料,期待資料格式應具備一定程度的可攜性,使用者可能會想要備份這些資料。
應用程式狀態: $XDG_STATE_HOME (~/.local/state/)
存放像是執行紀錄 (log) 檔、最近存取資料的紀錄、視窗最後位置等,可以用在應用程式啟動時初始狀態的資料,使用者備份這些資料可能沒有太多意義。
使用者自行安裝的程式: ~/.local/bin/
各 distribution 應該自動的在這個資料夾存在時,把他加到使用者的 $PATH 環境變數中。

雖然沒有那麼常見,但最好可以考慮使用者資料夾可能會在不同處理器架構的主機間共用的情形。

規格中另外有定義一些環境變數,用來指定搜尋資料的順序。

Wednesday, November 06, 2024

在 WSL 2 上掛載 USB disk

如果要在 WSL 2 (Windows Subsystem for Linux) 掛載在 Linux 格式 (EXT4, XFS ... etc.) 的 USB 外接磁碟,可以先試試看這篇 Mount a Linux disk in WSL 2 說的方法,萬一不行再去試 Connect USB devices 的方式。

雖然第一篇說該方法針對的是內部儲存裝置,外接式裝置無法支援,但我自己在 Windows 11 (23H2; build 22631) 試是可以的。反而透過 USBIPD 的方式,因為 WSL 提供的 kernel 沒有包含 USB mass storage 的驅動程式,雖然 lsusb 看得到裝置,但是沒辦法掛載起來使用。