Akonadi 和通訊錄
這裡的資料由KDE-PIM 開發人員 Tobias Koenig 提供。
一些定義
真實數據(real data)我們指的像是聯繫人或事件這類數據。這些數據或是存儲在「群件服務器(groupware server)」,或是存儲在本地文件中。具體存儲的位置取決於你使用的資源,比如,個人聯繫人(Personal Contacts)資源就是把數據存儲到$HOME/.local/share/contacts,同時VCard File 資源(已經不推薦使用了)則存儲數據到$HOME/.kde/share/apps/kabc/std.vcf。
緩存數據(cached data)則是真實數據的副本,放置在數據庫中便於更快速的訪問和作為離線緩存。數據庫還同時保留著用來管理數據的元數據(meta data),Akonadi需要元數據才能正常工作。
設置數據(configuration data)是設定Akonadi 服務器和個別資源的數據。服務器的設置數據可以在$HOME/.config/akonadi 找到,資源的設置數據通常存儲在$HOME/.kde/share/config/akonadi_xyz_resourcerc# (xyz 是資源名而#是其的實例數)。
Akonadi 服務端的配置資訊其實就是 $HOME/.config/akonadi 那的一組配置檔(通過改環境變數 $XDG_DATA_HOME 和 $XDG_CONFIG_HOME 可以變更路徑的,默認分別是 $HOME/.local/share 和 $HOME/.config)。它的資訊包括那些數據源(data sources)和輔助程式(helper programs)是啟動被啟用的,啟用的這些會被Akonadi 的某個服務端進程 (akonadi_control)啟動和監控(所以它們崩潰的時候才能自動重啟)。KDE 的本地基本路徑可用 $KDEHOME 環境變數修改,默認是 $HOME/.kde(有的發行版改了源代碼,就可能是 $HOME/.kde4)
參考
kde4-config --path data
每種數據來源處理器(稱作 資源)或者輔助程式(稱作 代理)都可以有自己的配置資訊,當然有些是沒的。通常來說 $HOME/.config/akonadi/agentsrc 中每條都有其在 $HOME/.kde/share/config 對應的配置。比如說,如果 [Instances] 字段有條叫 akonadi_ical_resouce_2,那麼 KDE 配置目錄下麵會有個叫做 akonadi_ical_resource_2rc 的檔。
Depending on the type of data, such config files for resources will have filenames or directory names of where the data is stored. Common locations are KDE's legacy default files, e.g. $HOME/.kde/share/apps/korganizer/std.ics. New default locations are files and directories in $HOME/.local/share, e.g. $HOME/.local/share/contacts.
For now (as in actually released versions) the database is merely used for caching and keeping structural information (e.g. which addressbook a contact belongs to). This will change when Akonadi is being used for email, since state information like read/unread is also stored there (unless the backend is also capable of doing this, e.g. IMAP).
籌備備份
然後現在是該決定備份什麼樣的數據了。如果你想備份"真實數據(real data)",這東西又得具體看你設定的資源……要是你用的是「群件服務器(groupware server)」,備份這事應該在那邊搞定。對於聯繫人,你需要的通常是$HOME/.local/share/contacts 那的文件。
Akonadi 托盤圖標提供備份和恢復功能。備份的是"緩存數據(cache data)",所以可能沒帶全你所有的數據!如果你想1:1進行系統拷貝,這功能會很有用,你可以拷貝真實數據和配置的同時復制緩存數據過去,之後便不必再次從源載入數據(比如群件服務器)。
測試你的資源
KRunner 提供Akonadi Resource Configuration,或是你通過 來訪問,你可能會發現已經建立好多個資源。還可能你會看到某個資源帶上這樣的標籤:
Address Book - No KDE address book plugin configured yet.
這是舊的兼容性問題(通常是遷移工具引起的)。你應該直接刪除之!
std.vcf - Ready
這是VCard File Resource,每個默認指向$HOME/.kde/share/apps/kabc/std.vcf。不推薦再用這種方式,因為其沒有使用到Akonadi的優勢。
個人聯繫人(Personal Contacts) - Offline
這是你本地聯繫人指向的優先資源
$HOME/.local/share/contacts
注意就算是你實際在用,還是可能會提示"離線(Offline)"。這是個顯示 bug,無視之。
什麼時候更多的組件改用Akonadi啊?
剩下的組件要是遷移到Akonadi,其所有數據會存儲到~/.local/share 嗎?那樣的話備份會簡單許多。嗯,聯繫人和郵件現在已經這樣處理了。但我不知道事件/todos 今後的計劃,但也存儲到那確實有道理。我們會在今後討論的時候記住這點的!
Troubleshooting
Problem: You update to 4.6 and your addressbook is suddenly completely blank
Solution: This is new behaviour in 4.6 - you can choose whether to display specific addressbooks or all of them. In front of each addressbook name there is a checkbox. Use that to enable the addressbooks you want to use.