Cannot set LC_XXX to default locale: No such file or directory
はじめに
ことあるたびに目にする、
Cannot set LC_ALL to default locale: No such file or directory
のメッセージ。検索率の高いエラーメッセージなので、回避策?をここに記す。
解説
locale
コマンドを叩いて現在の設定をみてみる。
$ locale locale: Cannot set LC_ALL to default locale: No such file or directory LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC=ja_JP.UTF-8 LC_TIME=ja_JP.UTF-8 LC_COLLATE="C.UTF-8" LC_MONETARY=ja_JP.UTF-8 LC_MESSAGES="C.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=
いくつかの環境変数に ja_JP.UTF-8
が。エラーも出てます。
localectl
を使用して有効なロケールリストを表示してみる。
$ localectl list-locales C.UTF-8 en_US.utf8
ja_JP.UTF-8
がない!無いなら追加(コンパイル)。日本人だし。
$ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
$ localectl list-locales C.UTF-8 en_US.utf8 ja_JP.utf8
ja_JP.utf8
が追加されていることを確認できました。再度 locale
コマンドでチェック。
$ locale LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC=ja_JP.UTF-8 LC_TIME=ja_JP.UTF-8 LC_COLLATE="C.UTF-8" LC_MONETARY=ja_JP.UTF-8 LC_MESSAGES="C.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=
各種ロケール設定は変わってないけど、エラー出てないです。