Akonadi 和地址薄

From KDE Wiki Sandbox
Revision as of 11:46, 26 March 2012 by Qiii2006 (talk | contribs) (Created page with "依据数据类型的不同,配置文件的文件名或者说目录名会有一定的规律。常规的路径是 KDE 传统的位置,比如说 $HOME/.kde/share/apps/korganize...")

这里的资料由 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。

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,或是你通过 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