FreeBSD: Устранение ошибок автоматического запуска сервера Akonadi

Akonadi Начиная со второго сеанса работы в 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-запроса:

CREATE DATABASE akonadi;
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
make install clean

А затем перейти к модулю Источники данных, выбрать источник данных 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. Вот, собственно, и вся настройка.

Заключение

Я надеюсь, что после прочтения этой статьи Вы сможете устранить ошибки автоматического запуска сервера Akonadi и забыть про надоевшие сообщения Процесс управления Akonadi не зарегистрирован в D-Bus и Процесс управления сервером Akonadi не зарегистрирован в D-Bus, а также начнете использовать систему Akonadi в повседневной работе, не забывая делиться с общественностью приобретенным опытом.

Понравилась статья?

 Подпишитесь на RSS или почтовую рассылку;

 Присоединяйтесь в Twitter, Facebook, Google+, VK;

 Поделитесь ссылкой в социальной сети или блоге:

38 комментариев к “FreeBSD: Устранение ошибок автоматического запуска сервера Akonadi

  1. Ставить MySQL ради какого-то органайзера и списка контактов — это ужаснах. Для таких задач достаточно SQLite. Я считаю, что этот звоночек говорит об очень простой вещи — KDE теперь пишут быдлокодеры. И до тех пор, пока для работы с некоторыми программами из KDE нужно будет ставить MySQL, я на эти программы даже смотреть не стану.

    • В моем случае MySQL нужен не только для Akonadi, поэтому ничего страшного. А вообще я с Вами согласен. Где-то попадалась инфа, что в ближайшее время будет добавлена поддержка SQLite, подождем, посмотрим.

  2. Большое спасибо за ваш блог! 🙂
    Очень помогли статьи, особенно про настройку флеша! Очень чётко и по делу, с первого раза настроилось 🙂
    И про Akonadi (надоела ошибка) и про загрузку со второго харда — тоже спасибо 🙂

    • Если мне не изменяет память, данное решение работает только при запуске KDE под root’ом (такой запуск KDE является грубейшим нарушением с точки зрения безопасности системы) 😉

    • Спасибо за статью, многое прояснилось, но все таки не стал возиться с настройками SQL, просто синхронизировал контакты и календарь через google. Но вот дела, все равно, при каждой перезагрузке и запуске Kmail выдается ошибка запуска anokandi (невозможно найти источник данных), хотя в настройках системы выбрано googldata использовать по умолчанию :-/ Исправляется это повторным введением логина и пароля в настройках источников в Akonadi … Да и вобщем синхронизация с гугл контактами не совсем корректна — те контакты которые имеют e-mail, заметки, день рождения, в Kontacte видны только с номером телефона…и всё, все поля пусты. Возможно это из-за различия форматов заголовков у anokadi и google… Есть у кого нибудь соображения по этому поводу?

      • Мне кажется, нужно подождать, когда Akonadi доведут до ума. Система имеет большой потенциал, однако, пока она реализована кривовато.

        • Здесь подсказка, как всё-таки можно ОТРУБИТЬ этот сервис, если «хочется пока подождать, когда Akonadi доведут до ума».
          (от имени root)
          # disable akonadi
          mv -f /usr/bin/akonadiserver /usr/bin/akonadiserver-x 2> /dev/null
          chmod ugo-x /usr/bin/akonadi*

          ЗАМЕЧАНИЯ:
          а)Эти команды подразумевают фикс для Линукса, во моем FreeBSD я еще не попробовал и не знаю, где находятся соответствующие файлы (надо будет порыться). Впрочем, locate akodanisever найдет его без труда, а там и все приложения.
          б)Это, разумеется, грязный фикс. Но если данный сервис НЕ НУЖЕН, то по-другому его отрубить системой не предусмотрено. А после отрубания целый ряд вещей работает намного быстрее.

  3. Проверил не под root`ом — вроде запустился. Хотя кто-знает, FreeBSD только осваиваю..

  4. А если в «параметрах системы» НЕТ ни вкладки «дополнительно» ни, тем более, «настройка аконади»??? Чо делать тада? Зы. Кеды 4.6.3.

  5. Да есь он там, есть, ибо ошибки-то вылазят. pkg_info | grep akonadi:

    akonadi-1.5.3 Storage server for kdepim

    Кстати, а не пробывали допиливать «штатную» конструкцию запуска, с тем конфигом, что делается в ~/.local/share/akonadi/mysql.conf со своим экземпляром мускуля?

    Кеды накатывались «с нуля» на свежую систему stable-8.2. Всё (сорсы,порты) регулярно обновляетсяинсталляцца. Блин, ну чо ещо пересобрать? Пробывал рекурсивно пересобирать qt-шные плугидрайвера пересобирать, всё одно.

    • Кстати, а не пробывали допиливать «штатную» конструкцию запуска, с тем конфигом, что делается в ~/.local/share/akonadi/mysql.conf со своим экземпляром мускуля?

      Во время написания статьи пробовал, ничего не получилось. Фанатизм не проявлял, т.к. MySQL был нужен не только для Akonadi.

      Кеды накатывались «с нуля» на свежую систему stable-8.2. Всё (сорсы,порты) регулярно обновляетсяинсталляцца. Блин, ну чо ещо пересобрать? Пробывал рекурсивно пересобирать qt-шные плугидрайвера пересобирать, всё одно.

      Я давно перешел на GNOME, поэтому не знаю, что сказать 🙂

  6. Вобщем рецепт такой (собсно, он уже присутствует на этой странице): как я уже говорил, никаких упоминаний про аконади в «параметрах системы» найдено не было (повторюсь, искалось в кедах 4.6.3), зато есть «приложения -> разработка -> консоль аконади», которая напрочь отказывается запускацца %) ибо сервер аконади не запущен… %)
    Далее… Решил я всеж-таки допинать «штатную» возможность, как тут раскопал тов. Alex:

    I add user=root in the Akonadi local mysql configuration file (on my computer, it is /root/.local/share/akonadi/mysql.conf), and Akonadi server can be started successfully. И правда заработало на FreeBSD 8.0.

    Вот, собственно и всё, запустился «параллельный» мускуль в сэйв моде, и поехало. Теперь можно открывать консоль аконади, стопать, стартить его, менять хранилку.., даж в постгрес можно ево запихать… Дурдом кароче.. Но работает 🙂

    • Кстати, как сейчас обстоят дела с календарями Google? В последней версии KDE 4.x, которой я пользовался, они не работали.

  7. А как проявлялась «не работа»? У меня при попытке сконфигурить агентов akonadi_googledata_resource_0, akonadi_gcal_resource_0, вылазит окошко об учетной записи на гугле, ввожу свою почтовую учетку на gmail.com, чота проверяет, и говорит, что типа пароль не такой… Эту учетку предварительно нада настраивать в KMail?

    • А как проявлялась «не работа»?

      После входа в систему велезало сообщение об ошибке обновления событий из календаря Google, при этом контакты из аккаунта GMail нормально обновлялись. Раньше все работало через Kontact без дополнительной настройки KMail.

  8. Инфа действительно полезная, но у меня чуть другая проблема. Через три месяца юзанья Кубунты ноут резко стал тупить, диспетчер показал что процесс Akonadi грузит систему более чем на 90%, соответственно, после завершения процесса (4х процессов) все заработало. Ошибок никаких не видел, странных сообщений тоже не выскакивало, так что это было?

    • Слава Богу, я давно перешел с KDE на GNOME, поэтому не представляю, «что это было». Если верить Интернету, разработчики KDE так и не начали думать о производительности своего творения. Отсюда — или пляски с бубном, или переход на более легкую среду. Я выбрал второй путь, т.к. первый не дал достойных результатов 🙂

  9. У меня тоже нет в “параметрах системы” ни вкладке “дополнительно”, нет “настройка аконади”. Может можно через конфиги изменить параметры доступа к внешнему серверу MySQL?

  10. У меня ничего не получилось. Почему-то Akonadi не может подключиться к базе…

    Found mysql_install_db: "/usr/bin/mysql_install_db"
    Found mysqlcheck: "/usr/bin/mysqlcheck"
    Failed to use database "akonadi"
    Database error: "Can't connect to local MySQL server through socket '/tmp/mysql.socket' (2) QMYSQL: Unable to connect"
    Trying to create database now...
    QSqlDatabasePrivate::removeDatabase: connection 'initConnection' is still in use, all queries will cease to work.
    Database error: Cannot open database.
    Last driver error: "QMYSQL: Unable to connect"
    Last database error: "Can't connect to local MySQL server through socket '/tmp/mysql.socket' (2)"
    Unable to open database "Can't connect to local MySQL server through socket '/tmp/mysql.socket' (2) QMYSQL: Unable to connect"

    • Вроде все подробно написано. Читаем, вникаем, устраняем. Если так сложно, следует обратиться к Яндексу с Гуглом.

  11. Для тех кто осилил подключение к мускулу тут можно найти решение проблемы с D-Bus:

    Akonadi will list the following errors:
    Akonadi server process not registered at D-Bus
    The fix is to edit the following file /etc/apparmor.d/usr.sbin.mysqld-akonadi. Below the line:
    @{HOME}/.local/share/akonadi/** rwk,
    Add a new line:
    @{HOME}/.Private/** rwk,
    Restart apparmor and restart akonadi.

  12. Как этот Akonadi работает, уж лучше его и не было бы вовсе. Даже интерфейс с Google издевательство сплошное. И глюки. Лучше CardDav и CalDav использовать.

  13. А может подскажет кто? Сижу за прокси с авторизацией. Можно в Akonadi какой-нибудь конфиг подправить, чтобы объяснить ему что я за прокси? Ну, как в apt, например в конфиге можно прописать Acquire::http::Proxy "http://user:pass@192.237.3.115:3128";
    Системные настройки Akonadi игнорирует.

Оставить комментарий