我正在编写一个脚本,使用“debootstrap”下载各种版本并在其上安装一些必要的包(包括语言环境),然后将其打包以供另一个脚本使用。
在 chroot 中运行命令时出现以下错误:
# locale-gen en_US.UTF-8;update-locale LANG=en_US.UTF-8
Generating locales (this might take a while)...
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
*** update-locale: Error: invalid locale settings: LANG=en_US.UTF-8
当我运行“export LANG='en_US.UTF-8'”时,它没有报告任何错误,但没有解决任何问题。
所以问题是,我该如何修复这些语言环境错误?
附言:如果有帮助的话我可以发布部分脚本源代码。
答案1
恐怕您调用locale-gen
错了 --locale-gen
不接受语言环境作为参数。您需要在 中指定系统的所有语言环境/etc/locale.gen
,然后调用locale-gen
一次即可为您生成所有语言环境。
编辑:这/etc/locale.gen
是我使用 Debian 时设置的文件。我现在使用 Ubuntu,配置文件是 /var/lib/locales/supported.d/local
。检查你的locale-gen
手册页以确保无误。