Я пытаюсь запустить диспетчер паролей (Keepass2), который вчера работал нормально, пока я не начал настраивать его, чтобы использовать общесистемные сочетания клавиш для автоматического набора. {{1} } Я работаю над Debian 10.
При запуске keepass из bash я получаю сообщение об ошибке, и для выхода мне нужно нажать ctrl + C.
~$ keepass2
X does not support your locale
^C
На самом деле мой исполняемый файл keepass таков:
$ cat $(which keepass2)
#!/bin/sh
exec /usr/bin/cli /usr/lib/keepass2/KeePass.exe "$@"
KeePass.exe запускается с использованием следующего приложения (я привязал символические ссылки для экономии места):
/usr/bin/cli -> /etc/alternatives/cli -> /usr/bin/mono -> /usr/bin/mono-sgen
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
$ uname -a
Linux ux410uq 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux
$ locale
LANG=en_IL
LANGUAGE=
LC_CTYPE="en_IL"
LC_NUMERIC=en_IL
LC_TIME=en_IL
LC_COLLATE="en_IL"
LC_MONETARY=en_IL
LC_MESSAGES="en_IL"
LC_PAPER=en_IL
LC_NAME=en_IL
LC_ADDRESS=en_IL
LC_TELEPHONE=en_IL
LC_MEASUREMENT=en_IL
LC_IDENTIFICATION=en_IL
LC_ALL=
$ locale -a
C
C.UTF-8
en_IL
en_IL.utf8
en_US.utf8
POSIX
Проблема похоже, началось с установки следующих пакетов, пока я пытался настроить интеграцию сочетаний клавиш с моей ОС. Однако их удаление не помогло устранить проблему ...
sudo apt install \
xsel \
xdotool \
mono-complete \
libcanberra-gtk-module \
libcanberra-gtk3-module \
Во время устранения неполадок (на основе других результатов поиска в Интернете) я попытался изменить значение $ LANG следующим образом, но безрезультатно (KeePass «GUI так и не появился ...):
$ echo $LANG
en_IL
$ export LANG=en_US
$ keepass2
(process:18003): Gtk-WARNING **: 14:40:07.107: Locale not supported by C library.
Using the fallback 'C' locale.
^C
$ export LANG=en_US.UTF-8
$ keepass2
^C
Пожалуйста, помогите мне восстановить стабильность моего KeePass.
Я решил вопрос сам! (:
Подход решения:
Я выполнил keepass в подробном режиме, надеясь видеть то, что ступает, он завис/привел к сбою на:
mono --verbose /usr/lib/keepass2/KeePass.exe
Шаг, заморозился на, относился к строке, которую я распознал от конфигурационного файла (~/.config/KeePass/KeePass.config.xml
), таким образом, я рассмотрел его.
Причина:
Конфигурационный файл ~/.config/KeePass/KeePass.config.xml
содержавшийся синтаксическая ошибка в одном из XML-тэгов: <TrayIcon>>
Решение:
Исправленный синтаксическая ошибка: <TrayIcon>
Предложение предотвращения/устранять:
Во время инициализации синтаксис конфигурационного файла должен быть проверен прежде, чем импортировать значения. Если форматирующие ошибки найдены, явное сообщение должно быть повышено для пользователя.