Akonadi 和通訊錄

From KDE UserBase Wiki
Revision as of 14:30, 20 March 2013 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

這裡的資料由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 的檔。

依據數據類型的不同,配置檔的檔案名或者說目錄名會有一定的規律。常規的路徑是 KDE 傳統的位置,比如說 $HOME/.kde/share/apps/korganizer/std.ics,新的默認路徑是 $HOME/.local/share,比如說 $HOME/.local/share/contacts。

當前的版本中,資料庫僅僅是拿來存儲結構化資訊(比如說某個聯繫人屬於哪個通訊錄)。這些是會變的,以後 Akonadi 會用於 email,像是已讀/未讀這些資訊的存儲(除非是 IMAP 那樣的後端才不需要這樣)。

籌備備份

然後現在是該決定備份什麼樣的數據了。如果你想備份"真實數據(real data)",這東西又得具體看你設定的資源……要是你用的是「群件服務器(groupware server)」,備份這事應該在那邊搞定。對於聯繫人,你需要的通常是$HOME/.local/share/contacts 那的文件。

Akonadi 托盤圖標提供備份和恢復功能。備份的是"緩存數據(cache data)",所以可能沒帶全你所有的數據!如果你想1:1進行系統拷貝,這功能會很有用,你可以拷貝真實數據和配置的同時復制緩存數據過去,之後便不必再次從源載入數據(比如群件服務器)。

測試你的資源

KRunner 提供 Akonadi Resource Configuration,或是你通過 Akonadi 託盤圖示 -> 設置來訪問,從 KDE 4.6 開始,你可以在 系統設置 ->個人資訊 找到,你可能會發現已經建立好多個資源。還可能你會看到某個資源帶上這樣的標籤:

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 今後的計劃,但也存儲到那確實有道理。我們會在今後討論的時候記住這點的!

故障排解

問題: 更新到 4.6,發現聯繫人清空了。

解決辦法: 這是 4.6 新改的-你可以選擇只顯示特定地址簿或顯示全部。在每個地址簿名字前有個複選框,你懂的。

相關頁面

Akonadi
Akonadi 故障排解
KAddressBook