git - 将功能齐全的 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
解决方案
感谢您的回复!
同时我找到了解决方案:
我只需将 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 并试了一下。
推荐阅读
- java - 带有部分提交的存储过程(从 Java 调用) - PostgreSQL 11
- sql-server - 删除 SQL Server Management Studio 数据库列表中的条目?
- angular - popupParent 'ag-grid-angular' 的未知属性
- javascript - iOS中消失的下拉菜单问题?
- laravel - vuejs中通过props的雄辩关系属性
- robotframework - 在 Robotframework 中获取给定元素的 HTML 标签
- python - 在收集负载上捕获事件
- pg-promise - pg-promise:BEGIN 和 COMMIT 什么时候发送?
- powershell - Powershell 路径关闭(设置损坏?)
- python-3.x - 熊猫如何添加搜索“?” 与 str.contains