最近新しく端末を購入し,例によって Debian sid を入れてセットアップ中です.
しかし, MComix が起動しません.
端末で試すとこのようなエラー.
$ mcomix
Traceback (most recent call last):
File "/usr/bin/mcomix", line 8, in <module>
sys.exit(main())
^^^^^^
File "/usr/lib/python3/dist-packages/mcomix/__main__.py", line 26, in main
run()
File "/usr/lib/python3/dist-packages/mcomix/run.py", line 154, in run
i18n.install_gettext()
File "/usr/lib/python3/dist-packages/mcomix/i18n.py", line 82, in install_gettext
lang = portability.get_default_locale()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/mcomix/portability.py", line 49, in get_default_locale
lang, _ = locale.getdefaultlocale(("LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG"))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/locale.py", line 549, in getdefaultlocale
return _getdefaultlocale(envvars)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/locale.py", line 579, in _getdefaultlocale
return _parse_localename(localename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/locale.py", line 496, in _parse_localename
raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: ja_JP-UTF-8
$ env | grep ja_JP-UTF-8
LANGUAGE=ja_JP-UTF-8locale が ja_JP-UTF-8 と ja_JP.UTF-8 の Typo らしきものになっており知らない locale だということで起動に失敗しているようです.
$ LANGUAGE=ja_JP.UTF-8 mcomix とすると起動します.
ja_JP-UTF-8 をどこかで間違って設定してしまったのだろうと探すと /etc/locale.conf に見つけました.
これを ja_JP.UTF-8 に修正,再起動することで修正されました.
$ sudo localectl set-locale ja_JP.UTF-8 $ sudo git -C /etc diff locale.conf diff --git a/locale.conf b/locale.conf index ee5c432..6345544 100644 --- a/locale.conf +++ b/locale.conf @@ -1,2 +1,2 @@ LANG=ja_JP.UTF-8 -LANGUAGE=ja_JP-UTF-8 +LANGUAGE=ja_JP.UTF-8
/etc/locale.conf は systemd のもののようです.
/etc/locale.conf がシステムワイドの設定, ~/.config/locale.conf がユーザーの設定のようです.
ということでこのように変更しました.
$ localectl set-locale LANG=C $ cat /etc/locale.conf LANG=C $ cat ~/.config/locale.conf LANG=ja_JP.UTF-8 LANGUAGE=ja_JP.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 $ systemctl reboot
しかし, ~/.config/locale.conf はうまく反映されなかったので結局いつもの ~/.profile で設定し直しました.
$ locale LANG=ja_JP.UTF-8 LANGUAGE=ja_JP.UTF-8 LC_CTYPE="ja_JP.UTF-8" LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_PAPER="ja_JP.UTF-8" LC_NAME="ja_JP.UTF-8" LC_ADDRESS="ja_JP.UTF-8" LC_TELEPHONE="ja_JP.UTF-8" LC_MEASUREMENT="ja_JP.UTF-8" LC_IDENTIFICATION="ja_JP.UTF-8" LC_ALL=
この環境は,Debian testing の 20240718 スナップショットで導入してすぐに sid にアップグレードしたものです.
loale は ja_JP.UTF-8, en_US.UTF-8, C.UTF-8 をテキストインストーラーから選択, ja_JP.UTF-8 をデフォルトロケールに.インストール後 sid に dist-upgrade して手動設定を下覚えのない環境です.
折を見て再度試してみたいところです.
$ dpkg-query -W locales systemd locales 2.39-6 systemd 256.4-2 $ lsb_release -dr Description: Debian GNU/Linux trixie/sid Release: n/a $ arch x86_64