我正在尝试将旧的 Ubuntu 14 Docker 映像升级到 22.04。Dockerfile 中的命令之一是ln -s /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/all
。
这在 Ubuntu 22.04 上失败,因为目录/var/lib/locales
不存在。
- 我可以在运行命令之前创建目录,但我不确定这是否真的会产生预期的效果。
- 在 Ubuntu 14 上,该文件
/usr/share/i18n/SUPPORTED
作为基础映像的一部分存在...但在 Ubuntu 22.04 上,我必须安装该包locales
才能使该文件出现。 - 是否需要安装其他软件包才能获取目录
/var/lib/locales
? 同样,我可以只创建目录,但如果约定已更改,则创建目录不会产生任何效果,因为语言环境文件永远不会被拾取。
以下是完整命令以供参考
ln -s /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/all
locale-gen
export LANG=en_US.UTF-8
答案1
您发布的三个命令行中唯一重要的部分可能是export LANG=en_US.UTF-8
设置所需的语言/区域设置。
前两次出现成为解决方法以确保 en_US.UTF-8 得到正确支持并可用。
在现代 Ubuntu 上,我会从locales
默认安装的软件包开始,然后运行 locale -a
运行以查看默认支持的软件包。对于我的 Ubuntu 22 LTS,显示:
locale -a
C
C.utf8
POSIX
en_US.utf8
然后我会迁移
ln -s /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/all
locale-gen
export LANG=en_US.UTF-8
简单来说:
export LANG=en_US.utf8
如果这对于您正在运行的应用程序来说不够用,您可能需要安装语言包:language-pack-en-base
和/或 language-pack-en
。