错误:英特尔Edison和git 2.0.1上的“git:'submodule'不是git命令”

时间:2016-02-02 17:02:11

标签: git intel-edison

当我尝试使用git子模块并在运行Yocto Linux和git 2.0.1的英特尔Edison上键入常用命令git submodule时,我收到以下错误消息:

$> git submodule init
git: 'submodule' is not a git command. See 'git --help'

系统版本是:

$> uname -r
3.10.17-poky-edison+
$> git --version
git version 2.0.1
$> configure_edison --version
159

谷歌上没有该错误的跟踪。

是否需要安装额外的软件包?或者是因为git 2.0.1?

在我的Ubuntu(git 1.9.1)上,这些命令运行正常。

3 个答案:

答案 0 :(得分:6)

是的,爱迪生的Git可能是一个轻量级的版本。正如msw在评论中所提到的,最好的选择是从source构建git。但我相信Yocto包的下一个版本可能会附带一个新版本的git。

答案 1 :(得分:3)

这个问题很老,但是当我在爱迪生董事会上遇到相同的问题时,这是我的解决方法,它仍然可能引起某些人的兴趣。
我为爱迪生使用的yocto版本是这样的:https://github.com/edison-fw/meta-intel-edison

发生此问题是因为Edison板上的git版本缺少某些部分。在这种情况下, / usr / libexec / git-core

中缺少 git-submodules 二进制文件

因此,按照说明构建了yocto图像后,您可以在上面的同一链接(或此处https://edison-fw.github.io/meta-intel-edison/)上找到并刷新了木板,则必须复制文件 git-submodules < / em>从您的主机PC到您的Edison开发板。

在主机上,一旦进入构建目录( path / to / edison / out / linux64 / build ),请输入:

find . -name "git-submodule"

您将为同一文件获得不同的位置。拿其中之一。

将其在edison板上复制到/ usr / libexec / git-core。

现在带有子模块的git应该可以正常工作...


更新:
渡轮的答案更好,但从某种意义上讲,它对我而言不起作用(yocto sumo)。软件包git-perltoolsgit软件包的一部分,因此无需将其添加到您的核心映像中,但仍未安装。我发现软件包git-perltools取决于要安装的findutils,因此可能需要在{em> core-image
中添加findutils才能使Ferry做出答案。

NB:
我本来希望对费里的回答发表评论,但我没有权利。

答案 2 :(得分:3)

使用Yocto构建git时,行为似乎是预期的。不幸的是,预期的行为不是您所期望的。在Ubuntu上,git-submodule包含在软件包{{1}中,在Yocto上包含在软件包git中。运行git-perltools时,将生成以下程序包(Thud):

bitbake git

其中ferry@delfion:~/.../out/linux64/build/tmp/work/corei7-32-poky-linux/git/2.18.1-r0/deploy-debs/corei7-32$ ls -l - git_2.18.1-r0_i386.deb - git-bash-completion_2.18.1-r0_i386.deb - git-dbg_2.18.1-r0_i386.deb - git-dev_2.18.1-r0_i386.deb - git-doc_2.18.1-r0_i386.deb - git-perltools_2.18.1-r0_i386.deb - gitweb_2.18.1-r0_i386.deb 包含git-perltools

您怎么事先知道?结帐https://layers.openembedded.org。您可以轻松找到:http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-devtools/git/git.inc?h=thud,其中包含:

git-submodule

因此,在您的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,而且还添加git-perltools,将为您带来所需的东西。

OTOH Yocto具有一个不错的功能,可以在主机上构建跨编译器环境。因此您可以配置使用f.i.使用sdk构建QT Creator并从主机远程调试目标。这样,您无需在英特尔Edison上构建/安装工具链。有关更多信息,请点击此处:https://edison-fw.github.io/meta-intel-edison/3-Building-the-SDK.html

渡轮托特(aka htot @ github)