我对克隆私有git repo的内容很感兴趣,因此可以通过自定义BitBake配方使用它们。我尝试过调整Yocto Project邮件列表中的this technique,并生成以下内容:
SRC_URI = "git://www.example.com/path/to/repo;protocol=https;branch=master;name=commit;user=<username>:<password>
SRCREV_commit = "9f8309bbdf0632191bec21fada2cb61a30bcf53e"
我使用的密码包含左括号。我收到这个错误:
/bin/sh: -c: line 0: syntax error near unexpected token `)'
我可以通过某种方式逃避这个特殊角色,或者使用其他方式克隆回购?
答案 0 :(得分:7)
如另一条评论中所述,您也可以使用git + ssh:
SRC_URI = "git://git@some.private.url/path/to/repo;protocol=ssh"
然后,您需要将运行bitbake的用户的公钥添加到git服务器。调试fetch为什么不起作用的一种好方法是实际使用ssh -v
来连接:
ssh -v git@some.private.url
谨防git服务器实现(如GitLab)之间的奇怪路径差异,例如,我们需要使用类似的东西(注意代字号)来使这些URI在Bitbake和Google Repo上运行:
SRC_URI = "git://git@some.private.url:~/groupname/repo.git;protocol=ssh;branch=${BRANCH}"
答案 1 :(得分:3)
好吧,也许不是你正在寻找的答案......
通常,我使用ssh-authentications,因此我只使用SRC_URI
中的用户名;然后ssh-agent负责authenticaton部分。这也可以在autobuilder上轻松设置。
另一种方法是将凭据添加到.netrc
。在这种情况下,请将文件.netrc
添加到您的主目录,其内容如下:
machine stash1.mycompany.com
login myusername
password mypassword
这应该允许您省略SRC_URI
的用户名和密码。
根据您的情况,不将凭证存储在配方本身中可能会被视为一种好处。或者它可能不会......
如果你想在你的食谱中存储密码(包括&#39;),你需要找到逃脱它的方法,或者用#34; &#39;&#34 ;. (这是完全未经测试的,我还没有得到密码保护的git存储库来玩)。