Приложения KDE Kontact не запускаются. Служба управления личной информацией Akonadi не работает

Как видно из результатов ls -l внутри устройства, для группы и «других» разрешений флаг «write» снят. Записывать может только пользователь-владелец.

Если требуется сохранить идентификаторы установки в целости, добавьте соответствующий параметр методов монтирования в /etc/fstab для разрешения записи в группу, например mode = 0775 является rwx для пользователя и группы, r-x для других.

-121--195290-

Обычно настройки конфигурации для всех шрифтов устанавливаются в файле theme.cfg в каталоге темы.

toolbar.font: dejavusans-12
toolbar.clock.font: dejavusans-12
menu.title.font: dejavusans-bold-11
menu.frame.font: dejavusans-bold-10
window.font: dejavusans-bold-11

Поскольку этот настраивать отсутствует, он будет использоваться для шрифта по умолчанию. В зависимости от конфигурации X или GTK + можно отследить шрифт по умолчанию.

-121--195289-

В основном команда «shift» позволяет «пройти» аргументы, переданные сценарию или функции.

Основное использование состоит в том, чтобы получить доступ к $0 в цикле при «сдвиге» до тех пор, пока больше не останется аргументов.

Точное использование shift $ (($ OPTIND-1)) заключается в пропуске опций, проанализированных и стандартизированных getopts (т.е. -uvh станет -u -v -h), поэтому при этом вы получите свой первый аргумент «non-option» в позиции $0 массива аргументов.

2
21.06.2018, 23:22
2 ответа

Решение

Журналы ошибок показывают, что версия akonadi сервера mysql, которая требуется этим K *приложениям, пытается получить доступ ~/.local/share/akonadi/db_data/, за исключением того, что db_dataне существует,поэтому он выдает ошибку, очень похожую на touch ~/nonexistent_dir/file.txt.

Для решения просто запустите приведенные ниже команды.cd ~/.local/share/akonadi/; mkdir db_data


Объяснение

После долгих поисков в Интернете (было приличное количество информации, но большая ее часть была неполной/нерешенной веткой форума о похожих, но не идентичных проблемах с Аконади )мне удалось найти это общее резюме Akonadi из KDE, которое стало отличным стартом для моего собственного исследования.

Поигравшись с командами, упомянутыми в ссылке, я получил следующий вывод (редакция моя):

$ akonadictl start
$ Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
mysqld: [ERROR] Could not open required defaults file: /home/[my username]/.config/akonadi/
mysqld: [ERROR] Fatal error in defaults handling. Program aborted!
org.kde.pim.akonadiserver: database server stopped unexpectedly
org.kde.pim.akonadiserver: Database process exited unexpectedly during initial connection!
org.kde.pim.akonadiserver: executable: "/usr/sbin/mysqld-akonadi"
org.kde.pim.akonadiserver: arguments: ("--defaults-file=/home/[my username]/.local/share/akonadi/mysql.conf", "--datadir=/home/[my username]/.local/share/akonadi/db_data/", "--socket=/tmp/akonadi-[my username].UXCgLp/mysql.socket", "--pid-file=/tmp/akonadi-[my username].UXCgLp/mysql.pid")
org.kde.pim.akonadiserver: stdout: ""
org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory)\n2018-06-21T19:34:18.989616Z 0 [Warning] The syntax '--log_warnings/-W' is deprecated and will be removed in a future release. Please use '--log_error_verbosity' instead.\n2018-06-21T19:34:18.989703Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).\n2018-06-21T19:34:18.991172Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:18.992274Z 0 [Note] /usr/sbin/mysqld (mysqld 5.7.22-0ubuntu0.16.04.1) starting as process 11859...\n2018-06-21T19:34:19.006500Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006549Z 0 [Warning] Can't create test file /home/[my username]/.local/share/akonadi/db_data/[my hostname].lower-test\n2018-06-21T19:34:19.006623Z 0 [ERROR] failed to set datadir to /home/[my username]/.local/share/akonadi/db_data/\n2018-06-21T19:34:19.006632Z 0 [ERROR] Aborting\n\n2018-06-21T19:34:19.006658Z 0 [Note] Binlog end\n2018-06-21T19:34:19.006726Z 0 [Note] /usr/sbin/mysqld: Shutdown complete\n\n"
org.kde.pim.akonadiserver: exit code: 1
org.kde.pim.akonadiserver: process error: "Unknown error"
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/akonadi-[my username].UXCgLp/mysql.socket' (2)'
Check that mysqld is running and that the socket: '/tmp/akonadi-[my username].UXCgLp/mysql.socket' exists!
org.kde.pim.akonadiserver: Failed to remove runtime connection config file
org.kde.pim.akonadicontrol: Application 'akonadiserver' exited normally...

Получается пара интересных строк. Проблемным является org.kde.pim.akonadiserver: stderr: "mysqld: Can't change dir to '/home/[my username]/.local/share/akonadi/db_data/' (Errcode: 2 - No such file or directory). Для меня это выглядело так, как будто программа пыталась записать в каталог, к которому у нее не было доступа, и выдавала ошибку, очень похожую на touch ~/nonexistent_dir/file.txt.

Поэтому я запустил cd ~/.local/share/akonadi/; mkdir db_dataи повторил попытку. Бам сработало.

5
27.01.2020, 21:58

Аналогичная проблема, но другое решение. Моему поставили такой диагноз:

$ akonadictl --verbose start                                      
....
org.kde.pim.akonadiserver: Executing: "/usr/sbin/mysqld-akonadi" "--defaults-file=/home/dargaud/.local/share/akonadi/mysql.conf --datadir=/home/dargaud/.local/share/akonadi/db_data/ --socket=/run/user/10705/akonadi/mysql.socket --pid-file=/run/user/10705/akonadi/mysql.pid"
org.kde.pim.akonadiserver: database server stopped unexpectedly

$ tail /var/log/syslog                      
audit: type=1400 audit(1593423663.888:404): apparmor="DENIED" operation="mknod" profile="/usr/sbin/mysqld" name="/home/dargaud/.local/share/akonadi/db_data/mysqld_tmp_file_case_insensitive_test.lower-test" pid=156675 comm="mysqld-akonadi" requested_mask="c" denied_mask="c" fsuid=10705 ouid=10705

Решение, добавление следующих двух строк в файл конфигурации apparmor для mysqld:

$ sudo nano /etc/apparmor.d/usr.sbin.mysqld
/{,var/}run/user/[0-9]*/akonadi/** rw,
/home/*/.local/share/akonadi/** rwk,

Далее следует:

$ sudo systemctl restart apparmor.service
$ akonadictl --verbose start 
3
29.06.2020, 09:56

Теги

Похожие вопросы