Akonadi 和通訊錄

From KDE UserBase Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Akonadi and AddressBook and the translation is 94% complete.
Outdated translations are marked like this.

Note

This article also apply to other applications that are using Akonadi for example KMail and KOrganizer.


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