2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

Debian localeエラー!

現象:以下の赤字のような、perlのlocaleエラーが出る。
OS:Debian Linux3.1 sarge

perl: warning: Setting locale failed.
LANG = “ja_JP.EUC-JP”
LANGUAGE = “ja_JP:ja:en_GB:en”,
LC_ALL = (unset),
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).
perl: warning: Please check that your locale settings:


原因:このホストのロケールの設定がおかしい。サーバ用途等でXを使わないテキストコンソール画面では、通常2バイトコードは使わないため、本来インストール時、言語に日本語(2バイト文字)を選んだ場合は、テキストコンソール用に英文字(1バイト文字)を追加して選択しておくべきであろう。つまり、日本語ja_JP.EUC-JPを日本語localeとして選択するなら、英語en_US.ISO-8859-1をテキストコンソールlocaleとして選択すると良い。
また、元々、設定してあるロケールが /usr/share/locale/locale.alias に無いロケールが設定されている場合も、このような現象が起きる。


対策:現状のlocaleに追加する。次のいずれかの方法でlocaleに en_US ISO-8859-1 を追加する。

対策1)
locale.genファイルを編集。デフォルトをen_US.ISO-8859-1にするため、ja_JP.EUC-JPより上に追加する。
ns:~# vi /etc/locale.gen
en_US ISO-8859-1

ja_JP EUC-JP

追加をlocale-genコマンドで反映させる。
ns:~# locale-gen

デフォルトロケールを設定する。
ns:~# vi /etc/default/locale
LANG=en_US
LANGUAGE=en_US

再起動する。
ns:~# reboot

localeコマンドで設定状態の確認。
ns:~# locale
LANG=en_US
LANGUAGE=en_US
LC_CTYPE=”en_US”
LC_NUMERIC=”en_US”
LC_TIME=”en_US”
LC_COLLATE=”en_US”
LC_MONETARY=”en_US”
LC_MESSAGES=”en_US”
LC_PAPER=”en_US”
LC_NAME=”en_US”
LC_ADDRESS=”en_US”
LC_TELEPHONE=”en_US”
LC_MEASUREMENT=”en_US”
LC_IDENTIFICATION=”en_US”
LC_ALL=

対策2)
メニュー形式のツールでlocaleを追加する。
ns:~# dpkg-reconfigure locales

画面1

画面1のようにメニュー形式でen_US.ISO-8859-1を追加する、OKで保存する。

画面2

画面2の画面でデフォルトをen_USに設定する。設定し終えたら再起動。

ns:~# reboot

localeコマンドで設定状態の確認。
ns:~# locale
LANG=en_US
LC_CTYPE=”en_US”
LC_NUMERIC=”en_US”
LC_TIME=”en_US”
LC_COLLATE=”en_US”
LC_MONETARY=”en_US”
LC_MESSAGES=”en_US”
LC_PAPER=”en_US”
LC_NAME=”en_US”
LC_ADDRESS=”en_US”
LC_TELEPHONE=”en_US”
LC_MEASUREMENT=”en_US”
LC_IDENTIFICATION=”en_US”
LC_ALL=

対策1、対策2共通)

ns:~# vi .profile
# ~/.profile: executed by Bourne-compatible login shells.

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

mesg n
# Installed by Debian Installer:
# no localization for root because ja_JP.UTF-8
# cannot be properly displayed at the Linux console
LANG=en_US             ←追加
LANGUAGE=en_US
         ←追加
LC_ALL=en_US
            ←追加

以上

コメント