由于Yocto的默认区域设置为POSIX,我遇到了如图所示的错误。现在我的问题是我不知道如何将区域设置更改为en_US.utf-8。
由于Yocto的默认区域设置为POSIX,我遇到了如图所示的错误。现在我的问题是我不知道如何将区域设置更改为en_US.utf-8。
我也在使用Yocto。当我尝试在Python3上运行脚本时,出现了以下错误:
Traceback (most recent call last): ... RuntimeError: Click will abort further execution because Python 3 was configured to use ASCII as encoding for the environment. Either switch to Python 2 or consult http://click.pocoo.org/python3/ for mitigation steps.
为了解决这个问题,首先我必须在local.conf中启用UTF-8。
GLIBC_GENERATE_LOCALES = "en_GB.UTF-8 en_US.UTF-8"
然后,在目标机器上运行locale -a时,我得到了类似以下的内容。
C
en_GB
en_US
POSIX
C ->ANSI_X3.4-1968
en_GB ->UTF-8
en_US ->UTF-8
POSIX ->ANSI_X3.4-1968
最终
export LC_ALL=en_US
export LANG=en_US
DESCRIPTION = "Copy scripts to profile.d"
LICENSE = "CLOSED"
SRC_URI = "file://*"
GLIBC_GENERATE_LOCALES="en_GB.UTF-8 en_US.UTF-8"
IMAGE_LINGUAS = "en-us"
RDEPENDS_${PN} = "bash"
do_install () {
install -d ${D}/etc/profile.d
install -m755 ${WORKDIR}/lang.sh ${D}/etc/profile.d
}
您需要在shell脚本所在的文件夹中创建一个子文件夹,名称不重要,因为这行代码:
SRC_URI = "file://*"
源自子文件夹。
shell脚本lang.sh
:
#!/bin/bash
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8