首页 > 解决方案 > 将功能齐全的 git 添加到 yocto build

问题描述

我对 yocto 和 linux 都很陌生,我正在尝试为我的 IMX8 SOM 构建一个图像,包括一个功能齐全的 git 版本。到目前为止,我已经设法构建图像并在目标上运行它,但由于不支持子模块,git 的功能并不完整。
为了将 git 添加到图像中,我只需将“git”添加到我的 local.conf 的 IMAGE_INSTALL_append 变量中。因此,我什至不知道 git 的来源是从中获取的,更糟糕​​的是,我不知道如何找到它。
我使用的基本 yocto 项目可在https://github.com/tq-systems/ci-meta-tq/tree/zeus-tqma8获得,并由 SOM 供应商维护。
由于 yocto 过度使用 git,我很难找到有关此问题的任何信息。任何有关如何向我的图像添加功能齐全的 git 版本的帮助表示赞赏。

更多信息:

cat /etc/os-release:  
ID="fsl-imx-wayland"
NAME="NXP i.MX Release Distro"  
VERSION="5.4-zeus (zeus)"  
VERSION_ID="5.4-zeus"  
PRETTY_NAME="NXP i.MX Release Distro 5.4-zeus (zeus)"  

git --version:  
git version 2.23.0

标签: gitembedded-linuxyocto

解决方案


感谢您的回复!
同时我找到了解决方案:
我只需将 git-perltools 添加到 IMAGE_INSTALL_append。

对于像我一样刚接触 yocto 等的每个人,我想详细总结一下我的方法:为了找到 git 的配方,我使用了find sources | grep git,其中“sources”是包含所有层的目录。不幸的是,这会产生一个很长的列表,但在其中你可以找到 git 配方(在我的例子中是 git_2.23.0.bb)。回想起来,grep for "git_" 以减少列表大小更有价值。
正如 OliverB 提到的,配方包括 git.inc。我看了一下,里面有两个有趣的代码片段:

PERLTOOLS = " \
    ${libexecdir}/git-core/git-add--interactive \
    ${libexecdir}/git-core/git-archimport \
    ${libexecdir}/git-core/git-cvsexportcommit \
    ${libexecdir}/git-core/git-cvsimport \
    ${libexecdir}/git-core/git-cvsserver \
    ${bindir}/git-cvsserver \
    ${libexecdir}/git-core/git-difftool \
    ${libexecdir}/git-core/git-send-email \
    ${libexecdir}/git-core/git-svn \
    ${libexecdir}/git-core/git-instaweb \
    ${libexecdir}/git-core/git-submodule \
    ${libexecdir}/git-core/git-am \
    ${libexecdir}/git-core/git-request-pull \
    ${datadir}/gitweb/gitweb.cgi \
    ${datadir}/git-core/templates/hooks/prepare-commit-msg.sample \
    ${datadir}/git-core/templates/hooks/pre-rebase.sample \
    ${datadir}/git-core/templates/hooks/fsmonitor-watchman.sample \
"

和:

# Git tools requiring perl
PACKAGES =+ "${PN}-perltools"
FILES_${PN}-perltools += " \
    ${PERLTOOLS} \
    ${libdir}/perl \
    ${datadir}/perl5 \
"

正如您在上面的片段中看到的那样,“git-submodule”包含在“PERLTOOLS”变量中,这表明它本身就是我正在寻找的东西。在第二个片段中,您可以看到,“PERLTOOLS”用于“${PN}-perltools”包中,该包解析为 git-perltools。
因此,我在 local.conf 中将“git-perltools”添加到 IMAGE_INSTALL_append 并试了一下。


推荐阅读