Yocto 安装 glibc-locale 组件

问题描述 投票:0回答:1

我需要在 Yocto 构建的 Debian 映像中安装 glibc-locale 软件包。最终映像应将字符映射与“locale”和“localedef”命令一起安装,以便“local -m”创建与 Ubuntu 发行版中类似的可用字符映射列表,并且我可以使用 localedef 创建一个自定义区域设置并使用它来设置 LANG。

我已经在目标图像构建文件中尝试过这些:

  • IMAGE_INSTALL_append =“等等等等……glibc-locale”
    • 这会导致构建错误,指出:软件包“glibc-locale”没有安装候选者
  • IMAGE_INSTALL_append = " ... glibc"
    • 虽然我可以看到 glibc-locale_do-package 在构建过程中运行,但它不会安装任何必要的文件。

local.conf 中的这些:

  • DISTRO_FEATURES_LIBC_append =“libc-locales”
  • DISTRO_FEATURES_append =“${DISTRO_FEATURES_LIBC}”
  • GLIBC_GENERATE_LOCALES =“en_US.UTF-8”
  • IMAGE_LINGUAS =“en-us”
  • ENABLE_BINARY_LOCALE_GENERATION =“1”

我并不期望这些能够产生所有想要的输出,但我希望得到一些东西;我什么也没得到。我还使用“bitbake -e target”检查了变量值,根据输出,上述变量包括构建该图像目标时的上述设置。

我可以运行“bitbake glibc-locale”,它成功生成了所需的输出。我只是无法在完整图像构建的背景下做到这一点。

我还尝试使用 glibc-locale 包的输出和我自己的配方将我想要的文件推入图像中。这样做会导致错误,指出多个配方正在尝试使用相同的文件填充 sysroot。

我不知道还能尝试什么。任何帮助将不胜感激。

debian locale glibc yocto
1个回答
0
投票

这花了我很长时间才弄清楚,因为文档似乎没有提到它。我怀疑文档已经过时了。

Poky 的 glibc-locale 配方定义了 动态包

PACKAGES_DYNAMIC = "^locale-base-.* \
                    ^glibc-gconv-.* ^glibc-charmap-.* ^glibc-localedata-.* ^glibc-binary-localedata-.* \
                    ^${MLPREFIX}glibc-gconv$"

这意味着如果您想要 en_US 语言环境,您需要:

IMAGE_INSTALL:append = " locale-base-en-us"

(这包括 en_US 和 en_US.utf8。)

对于魅力地图,您可能还需要:

IMAGE_INSTALL:append = " glibc-charmap-en-us"
© www.soinside.com 2019 - 2024. All rights reserved.