UbuntuやCentOSでBashログイン後に「warning: setlocale: LC_ALL: cannot change locale (ja_JP.UTF-8)」が表示された場合の対処
はじめに
新しく導入したばかりの Linux サーバーに Bash でログインしたところ、次の様なメッセージが表示されるようになりました。
原因を解消すべく、対応したときのメモです。
実行環境
直前に行ったこと
直前に行なっていたことは、 .bashrc
に環境変数を幾つか追加したことでした。
次の2行を追加していました。
ロケールとは
ロケール ( locale ) とは、コンピューター上で使用される言語や地域に関する設定のことを指します。
具体的には、言語、文字コード、通貨、日付や時刻の書式などが含まれます。
ロケールは、ユーザーが使用する言語や地域に合わせて設定することで、コンピューター上で表示されるテキストや日付などが適切な形式で表示されるようになります。
Linux では、ロケールを設定するためのコマンドや設定ファイルが用意されており、ユーザーが自由に設定できます。
ロケール設定は先程登場した環境変数 LANG
や LC_ALL
で設定します。
ロケール設定の環境変数は次の順序で優先されます。
LC_ALL
LC_XXX
( LC_で始まる環境変数 )LANG
ちなみに LC_XXX
環境園数には次のようなものがあります。
対処法
その1 : Debian 系 Linux で "language-pack-ja" パッケージを使う
language-pack-ja
パッケージをインストールすることです。
その2 : RedHat 系 Linux で "glibc-langpack-ja" パッケージを使う
その3 : Debian 系 Linux で "locales" パッケージを使う
「その1」の方法に比べてインストールするパッケージのサイズが小さいので、多少手数は増えますがこちらがおすすめ。
動作確認
ロケール設定が正しく動作するかを確認してみます。
環境変数 LANG
、 LC_ALL
を設定して date
コマンドの実行した結果は次のようになります。
日本語ロケールで表示されていることがわかります。
ひとこと
これでログインしなおしてもエラーは出なくなりました。
ディスカッション
コメント一覧
まだ、コメントがありません