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

deb*_*0ch 7 git intel-edison

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

$> git submodule init
git: 'submodule' is not a git command. See 'git --help'
Run Code Online (Sandbox Code Playgroud)

系统版本是:

$> uname -r
3.10.17-poky-edison+
$> git --version
git version 2.0.1
$> configure_edison --version
159
Run Code Online (Sandbox Code Playgroud)

在谷歌上没有该错误的跟踪.

是否有额外的包安装?或者是因为git 2.0.1?

在我的Ubuntu(git 1.9.1)上,这些命令工作正常.

小智 6

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


小智 5

git使用 Yocto构建时,它会出现预期的行为。不幸的是,预期的行为不是您所期望的。在 Ubuntu 上,git-submodule包含在 package 中git,在 Yocto 上包含在 package 中git-perltools。当你运行bitbake git下面的包被构建(Thud):

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
Run Code Online (Sandbox Code Playgroud)

git-perltools包含git-submodule.

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

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 \
"
Run Code Online (Sandbox Code Playgroud)

因此,不仅要添加git,还要添加git-perltools到您的core-image内容中,您将获得您想要的+ 多一点。

OTOH Yocto 有一个很好的功能,可以在您的主机上为您构建一个交叉编译器环境。因此,您可以配置为使用 fi QT Creator 使用 sdk 进行构建并从您的主机远程调试目标。这样您就无需在英特尔 Edison 上构建/安装您的工具链。更多关于这里:https : //edison-fw.github.io/meta-intel-edison/3-Building-the-SDK.html

Ferry Toth(又名 htot@github)