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
整个附录有一个免责声明,它并不全面,但它是官方文档,而且这个具体方法是完全正确的。还有其他可能更适合脚本编写的替代方法 - 此方法提示用户选择哪个区域设置。
还有第二个问题,附录中也顺便提到了。我不确定它是否会影响您的特定字符问题,但它可能会导致类似复杂输出的问题。您需要确保 TERM 设置正确。跑到echo $TERM
容器外面。在容器内,运行 例如export TERM=xterm-256color
设置此会话的终端类型。
我认为也无法machinectl login
为您处理这个问题,考虑到它如何与容器内的 systemd 进行通信,这很令人遗憾。
如果您在容器内运行 SSH 服务器,则只需使用它,SSH 将正确转发 TERM,并且您无需执行任何操作。