Начиная со второго сеанса работы в KDE4, у меня перестал запускаться сервер
Akonadi, а в его журнале начали появляться сообщения об ошибках сервера MySQL, а
также более странные сообщения "Процесс управления Akonadi не зарегистрирован в D-Bus” и "Процесс
управления сервером Akonadi не зарегистрирован в D-Bus”. Судя по диалогам на
форумах, многие столкнулись с данной проблемой, руководство по решению которой
мне так и не попалось. Пришлось разбираться самостоятельно.
Зачем тратить время на настройку системы Akonadi?
Так думают все, кто расценивает систему Akonadi (далее – Akonadi), как не понятно
зачем придуманное дополнение для PIM приложений KDE4. Это ошибочный подход.
Akonadi является интерфейсом, обеспечивающим стыковку приложений KDE4 с
большинством существующих хранилищ персональных данных (адресных книг,
календарей и т.д.), начиная с файлов на локальном диске и заканчивая
корпоративными Groupware-серверами и Online-службами сети Интернет. Чтобы не
быть голословным, я покажу, как с помощью Akonadi можно за несколько минут
организовать хранение контактов KAddressBook в адресной книге Gmail и задач KOrganizer в Календаре Google.
Причины ошибок автоматического запуска сервера Akonadi
Я столкнулся с двумя причинами возникновения ошибок запуска сервера Akonadi,
первая из которых связана с нарушением структуры баз данных Akonadi, вторая – с
отсутствием корректно настроенных источников данных Akonadi. Кроме этого,
возможно появление некорректно настроенных источников данных Akonadi, связаное с
ошибками в работе службы миграции Akonadi, предназначенной для переноса данных
из хранилищ устаревших типов в хранилища Akonadi. Для отключения автозапуска
службы миграции Akonadi можно выполнить команду:
kwriteconfig
--file kres-migratorrc --group Migration --key Enabled --type bool
false
Устранение проблем с базой данных Akonadi
На всякий случай напомню, что по умолчанию Akonadi запускает отдельный
экземпляр сервера MySQL для хранения базы данных akonadi (в
терминологии Akonadi – локальный сервер MySQL). База данных
akonadi и системные базы данных локального сервера MySQL создаются
в момент первого запуска сервера Akonadi. При выполнении этой операции могут
возникать ошибки, признаком наличия которых являются сообщения Журнал
сервера MySQL содержит предупреждения или Журнал сервера MySQL содержит
ошибки в окне Внутренние тесты сервера Akonadi – Параметры
системы, для отображения которого следует перейти к модулю Настройка
Akoandi, находящемуся на закладке Дополнительно окна Параметры
системы, в открывшемся окне Настройка Akonadi – Параметры системы
перейти на закладку Настройка сервера Akonadi и нажать кнопку
Проверка. После нескольких безуспешных попыток "приручения” локального
сервера MySQL, я решил попробовать разместить базу данных akonadi
на центральном сервере MySQL, который был установлен из портов (в терминлогии
Akonadi – внешнем сервере MySQL). Этого оказалось достаточно для
устранения всех проблем с базой данных Akonadi, в связи с чем я рекомендую Вам
последовать моему примеру. Для создания базы данных akonadi и
пользователя akonadi необходимо запустить клиент MySQL
командой:
mysql -u
<имя пользователя-администратора>
-p
ввести пароль пользователя-администратора и выполнить три SQL-запроса:
GRANT ALL
PRIVILEGES ON akonadi.* TO akonadi@localhost IDENTIFIED BY 'akonadi';
FLUSH
PRIVILEGES;
А затем перейти на закладку Настройка сервера Akonadi окна
Настройка Akonadi – Параметры системы и изменить параметры доступа к
внешнему серверу MySQL: снять "галочку” Использовать локальный сервер
MySQL, ввести в поля Database name, Пользователь и
Пароль заданные на предыдущем этапе имя базы данных, имя пользователя и
пароль, ввести в поле Параметры текст
UNIX_SOCKET=/tmp/mysql.sock.
Теперь можно удалить содержимое
папки $HOME/.local/config/akonadi (трогать саму папку не стоит,
т.к. она будет автоматически создана при следующем запуске сервера Akonadi,
который по умолчанию размещает в ней свой сокет, имеющий имя
akonadiserver.socket):
rm -Rf
$HOME/.local/config/akonadi/*
На этом устранение проблем с базой данных Akonadi заканчивается, можно
запустить / перезапустить / остановить сервер Akonadi, однако, пока только
вручную. Если перезапустить сеанс KDE4, сервер Akonadi опять не запустится, в
его журнале не будет информации об ошибках MySQL, однако, упомянутые выше
сообщения Процесс управления Akonadi не зарегистрирован в D-Bus и
Процесс управления сервером Akonadi не зарегистрирован в D-Bus, а,
возможно, и Агенты источников не найдены, никуда не денутся.
Настройках источников данных Akonadi
В первую очередь необходимо перейти на закладку Настройка сервера
Akonadi окна Настройка Akonadi – Параметры системы и вручную
запустить сервер Akonadi, переключиться на закладку Настройка источников
Akonadi и удалить некорректно сконфигурированные и помеченные маркером
источники данных Akonadi. Затем следует перейти к модулю
Источники данных, находящемуся на закладке Дополнительно окна
Параметры системы, и добавить два источника данных Akonadi. Количество
добавляемых источников данных зависит от конкретной задачи, самое главное – оно
должно быть строго больше нуля, иначе сервер Akonadi не будет запускаться
автоматически. На своем компьютере я добавил Адресные книги Akonadi (доступ
к папкам адресных книг Akonadi) для последующего хранения контактов
KAddressBook в адресной книге Gmail, а также Akonadi (доступ к папкам
календарей Akonadi) для последующего хранения задач KOrganizer в Календаре
Google. На данном этапе не нужно менять параметры добавляемых источников данных
за исключением имен, которые можно выбрать согласно личным предпочтениям (я
выбрал имена akonadi-addressbook-resource и
akonadi-calendar-resource). Лучше сделать добавленные источники
данных Akonadi источниками данных по умолчанию и удалить все остальные источники
данных. Данная мера позволит избавиться от вопросов PIM приложений KDE4 о месте
сохранения контактов и задач. На этом настройка автоматического запуска сервера
Akonadi заканчивается, можно перезапустить сеанс KDE4 и убедиться, что сервер
Akonadi запустился. Все замечательно, однако, пока система Akonadi не приносит
пользы, в связи с чем я перехожу к описанию одного из вариантов ее применения
"на благо человечества”.
Хранение контактов в адресной книге Gmail и задач в Календаре Google
В первую очередь следует установить агенты, позволяющие источникам данных
Akonadi взаимодействовать со службами Google:
cd
/usr/ports/databases/akonadi-googledata
А затем перейти к модулю Источники данных, выбрать источник данных
akonadi-addressbook-resource
(akonadi-calendar-resource), нажать кнопку Изменить, в
открывшемся окне Настройка источника – Параметры системы нажать кнопку
Manage Address Book Sources (Manage Calendar Sources), в
открывшемся окне Manage Address Book Sources – Параметры системы
(Manage Calendar Sources – Параметры системы) нажать кнопку
Добавить, в открывшемся окне Параметры системы выбрать
Akonadi Google Contacts Resource (Akonadi Google Calendar
Resource), ввести имя своей учетной записи и пароль Gmail, ввести пароль KWallet, если он не был введен ранее, закрыть
окно Manage Address Book Sources – Параметры системы (Manage
Calendar Sources – Параметры системы), выбрать добавленный агент
akonadi_googledata_resource_0
(akonadi_gcal_resource_0), установить "галочки” Contacts и
Distribution Lists (Events, Todos и
Journals) и нажать кнопку Ok. Вот и вся настройка. На десерт я
предлагаю видеоролик, демонстрирующий использование свеженастроенных функций в
KAddressBook (при желании Вы сможете найти в Сети аналогичную инструкцию по
использованию соответствующих функций в KOrganizer):
Заключение
Я надеюсь, что после прочтения этой статьи Вы сможете устранить ошибки
автоматического запуска сервера Akonadi и забыть про надоевшие сообщения
Процесс управления Akonadi не зарегистрирован в D-Bus и Процесс
управления сервером Akonadi не зарегистрирован в D-Bus, а также начнете
использовать систему Akonadi в повседневной работе, не забывая делиться с
общественностью приобретенным опытом.