Debian

在 systemd-nspawn 容器中設置語言環境 (debian jessie)

  • May 26, 2017

試圖在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

設置語言環境記錄在 Debian 安裝指南中 - 有一個附錄提供了一些關於直接使用 debootstrap 安裝和自己配置系統的提示。

要將您的語言環境設置配置為使用英語以外的語言,請安裝語言環境支持包並進行配置。目前推薦使用 UTF-8 語言環境。

# aptitude install locales
# dpkg-reconfigure locales

附錄整體有一個不全面的免責聲明,但它是官方文件,這個具體方法是完全正確的。還有其他替代方案可能更適合腳本 - 此方法提示使用者選擇哪個區域設置。

附錄還順便提到了第二個問題。我不確定它是否會影響您的特定字元問題,但它可能會導致類似複雜輸出的問題。您需要確保正確設置了 TERM。echo $TERM在容器外執行。在容器內,執行 egexport TERM=xterm-256color來設置這個會話的終端類型。

我認為也不會machinectl login為您處理這個問題,考慮到它如何與容器內的 systemd 對話,這很可悲。

如果您在容器內執行 SSH 伺服器,則只需使用它,SSH 將正確轉發 TERM,您無需執行任何操作。

引用自:https://unix.stackexchange.com/questions/295405