systemd-nspawnコンテナのロケール設定(debian jessie)

systemd-nspawnコンテナのロケール設定(debian jessie)

sudo systemd-nspawn -D ~/debian-tree/Fedoraホストで作成されたDebianコンテナで実行されているvimに電力線/航空会社のシンボルを表示しようとしています。

これで、ダイヤモンド状の疑問符(��)のみが表示されます。ロケールを設定する必要があると確信していますが、正しく設定する方法に対する直接的な答えが見つかりません。

出力locale

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

出力locale -a

C
C.UTF-8
POSIX

ベストアンサー1

ロケール設定は Debian インストールガイドに文書化されています。 debootstrapを使用して直接インストールし、システムを直接設定する方法についていくつかのヒントを提供する付録があります。

英語以外の言語を使用するようにロケールを構成するには、ロケール・サポート・パッケージをインストールして構成します。現時点では、UTF-8ロケールを使用することをお勧めします。

# aptitude install locales
# dpkg-reconfigure locales

付録全体には包括的ではないという免責事項がありますが、これは公式文書であり、この特定のアプローチは完全に正確です。スクリプトに適した他の選択肢があります。この方法では、ユーザーに選択するロケールの入力を求められます。

2番目の質問がありますが、これは付録でも言及されています。特定の文字の問題に影響を与えるかどうかはわかりませんが、複雑な出力などの問題が発生する可能性があります。 TERMが正しく設定されていることを確認する必要があります。echo $TERMコンテナの外部で実行します。コンテナ内で、たとえばexport TERM=xterm-256colorこのセッションの端末タイプを設定するには、次のようにします。

私はこれをあなたのために扱う方法がないと思いますmachinectl login。コンテナ内でsystemdと通信する方法を考えると、恥ずかしいことです。

コンテナ内でSSHサーバーを実行している場合は、SSHがTERMを正しく渡すため、何もする必要はありません。

おすすめ記事