首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将功能齐全的git添加到yocto构建中

将功能齐全的git添加到yocto构建中
EN

Stack Overflow用户
提问于 2020-12-07 10:48:01
回答 2查看 818关注 0票数 0

我对yocto和linux都很陌生,我正试图为我的IMX8 SOM构建一个映像,包括一个功能齐全的git版本。到目前为止,我已经成功地构建了映像,并在目标上运行它,但是git功能不全,因为不支持子模块。

为了将git添加到图像中,我只需将"git“添加到local.conf的local.conf变量中。因此,我甚至不知道git的来源是从哪里来的,更糟糕的是,我不知道如何找到它。

我使用的基本yocto项目可在https://github.com/tq-systems/ci-meta-tq/tree/zeus-tqma8上使用,并由SOM供应商维护。

由于yocto过度使用git,我很难找到关于这个问题的任何东西。任何帮助如何添加一个完整的功能git版本到我的形象是非常感谢的。

更多信息:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-09 10:47:27

谢谢你的回复!

与此同时,我找到了解决办法:

我只需在IMAGE_INSTALL_append中添加git-perltools。

对于yocto等人来说,我想详细总结一下我的方法:为了找到git的配方,我使用了find sources | grep git,其中的“源代码”是包含所有层的目录。不幸的是,这会产生一个相当长的列表,但是在其中您可以找到git配方(在我的例子中是git_2.23.0.bb)。回顾一下,对于grep来说,"git_“减少列表大小更有价值。

正如OliverB提到的,菜谱包括git.inc。我看了一下它,其中有两个有趣的代码片段:

代码语言:javascript
复制
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 \
"

以及:

代码语言:javascript
复制
# Git tools requiring perl
PACKAGES =+ "${PN}-perltools"
FILES_${PN}-perltools += " \
    ${PERLTOOLS} \
    ${libdir}/perl \
    ${datadir}/perl5 \
"

正如您在上面的片段中所看到的,“git-子模块”包含在"PERLTOOLS“变量中,它表明自己就是我所要寻找的。在第二个片段中,您可以看到"PERLTOOLS“在包"${PN}-perltools”中使用,该包解析为git-perltools。

因此,我在我的IMAGE_INSTALL_append中添加了"git-perltools“,并尝试了一下。

票数 1
EN

Stack Overflow用户

发布于 2020-12-09 01:32:39

不存在轻量级版本的git,您的git version看起来也不错。

Git是由菜谱git_2.23.0.bb在源代码/poky文件夹中编译的。如果您查看菜谱,您会发现它包括git.inc。这是定义源url的地方。

代码语言:javascript
复制
SRC_URI = "${KERNELORG_MIRROR}/software/scm/git/git-${PV}.tar.gz;name=tarball \
           ${KERNELORG_MIRROR}/software/scm/git/git-manpages-${PV}.tar.gz;name=manpages"

git的结果SRC_URI应该类似于https://cdn.kernel.org/pub/software/scm/git/git-2.23.0.tar.gz

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65180267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档