概要
概要のエラーが発生した際の対象法を残したいと思います
詳しいエラーは下記になります
-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
原因
Ansible経由でyum update
実行時に原因不明の接続断により、SSH接続する際に上記のようなエラーが表示されるようになった
後述にありますが、言語ファイルそのものが消えた
根本的な原因は不明です・・・
やったこと
-
QiitaCentOS7 LC_CTYPE: cannot change locale (UTF-8): No such file or directoryを参考に環境変数を設定してみたが改善できず
-
localectl set-locale LANG=en_US.utf8
を実行しても改善できず -
locale -a
を実行したところ以下のようにそもそも言語ファイルない!> locale -a locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_COLLATE to default locale: No such file or directory C C.utf8 POSIX
-
/usr/lib/locale/locale-archive
がない!
解決法
ちょうど同じ種類のインスタンス(AmazonLinux2)があったので、言語ファイル/usr/lib/locale/locale-archive
を転送して対応した
# 再度locale -aしてみる
> locale -a
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ER.utf8
aa_ER.utf8@saaho
aa_ET
aa_ET.utf8
af_ZA
af_ZA.iso88591
af_ZA.utf8
agr_PE
agr_PE.utf8
ak_GH
ak_GH.utf8
am_ET
am_ET.utf8
an_ES
an_ES.iso885915
an_ES.utf8
anp_IN
anp_IN.utf8
ar_AE
ar_AE.iso88596
ar_AE.utf8
ar_BH
~~省略~~
今回は言語ファイルを転送して対応したが、localdefコマンドで生成することで対応も可能なのか?