Ubuntu18.04で warning: Settings locale failed. が出るのでLocaleの設定を行って解決する


こんにちは、WSL2のRelease版が待ち遠しいかめねこです。
Localeに関するwarningが出てウザかったので解決した備忘録です。

前置き

WSL2ではファイルシステム周りが大幅に改善されるらしいですね。
ただ、執筆時点ではまだInsider Previewにしか配信されておらず、会社のマシンで使うにはもう少し時間がかかりそうです。
そこで、私はHyper-V上にUbuntuをインストールして、WSL1からSSHして利用しているのですが、例えばapt updateなどをするたびに以下のようなwarningが出るようになりました。

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "ja_JP.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

warningが出るだけで特に動作には問題ないのですが、出続けるのも気持ち悪いので修正しました。

環境

  • OS: Ubuntu 18.04
  • プラットフォーム: Hyper-V
  • WSLからSSHで接続

私はLocaleの再設定でなおりました

perl: warning: Setting locale failed.でググるといっぱい出てきます。
その中にはいろいろな対処法や原因があるのですが、私の場合はタイトル通り、Localeの設定を行うことででなくなりました。

初期状態では入っていなかった(であろう)日本語のLocaleを追加し

> sudo locale-gen ja_JP.UTF-8
[sudo] password for takuma:
Generating locales (this might take a while)...
  ja_JP.UTF-8... done
Generation complete.

追加したLocaleから再度Localeを設定します。

> sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

このとき、以下のように様々な言語がつらつらと並んでいるのですが、そのうち(私の場合は)以下の2つにチェックが入っていることを確認します。
多分デフォルトで入ってくれます。

  • en_US.UTF-8
  • ja_JP.UTF-8

そして、デフォルトの言語を選択します。
en_US.UTF-8を選択しました。

Generation completeと出れば完了です。

> sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ja_JP.UTF-8... done
Generation complete.

適当なコマンド(apt updateとか)を叩いてwarningが出ないことを確認して完了です👍

おわり

人によってはSSHの設定だったりすることもあるようで、一概にこの方法でうまくいくわけではないようです。
ということで、私はこんな方法で直りましたよという備忘録。