我试图升级一个旧的Ubuntu 14码头形象到22.04。Dockerfile中的一个命令是ln -s /usr/share/i18n/SUPPORTED /var/lib/locales/supported.d/all
。
这在Ubuntu22.04上失败了,因为目录/var/lib/locales
不存在。
/usr/share/i18n/SUPPORTED
作为基本映像的一部分存在.但是在Ubuntu22.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
发布于 2023-05-19 01:13:44
您发布的三个命令行中唯一重要的部分可能是设置所需的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
。
https://serverfault.com/questions/1131482
复制相似问题