1、repo简介:
repo 是一个构建在 Git 之上的工具,它可以更容易地管理包含多个存储库的项目,而这些存储库不需要位于同一台服务器上。 repo 很好地补充了 yocto 项目的分层特性,使用户可以更容易地将自己的层添加到 BSP 中。
简单来说, repo 用来管理多个 git 工程, git 是无法将 freescale 的在存储库里面的某个项目给 clone 下来,如果我们只需要 freescale 的 yocto 项目及一个QT5项目, (要想知道 freescale 可不只有 yocto 项目呢),使用 Git 下载却把个存储库项目都下下来了、却没有把 QT5项目(并不位于Freescale存储库中)下载下来。这就是为什么要用 repo 来管理更庞大的项目的原因了。在repo中的“.repo/manifests”目录中的default.xml文件中可以找到答案。
2、安装repo
安装步骤参考:https://source.android.com/setup/build/downloading#installing-repo (墙外,需要代理才能访问)
2.1 创建repo存放目录bin,并配置环境变量
mkdir ~/bin
PATH=~/bin:$PATH
2.2、下载repo启动程序,并确定其可执行。
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2.3、 配置git参数:
# git config --global user.name "Your Name"
Ubuntu# git config --global user.email "Your Email"
Ubuntu# git config --list
参数解释:
⚫ --global user.name :添加用户名
⚫ --global user.email :添加用户的 email
⚫ --list :查看列表信息
2.4、运行repo init,用以获取最新版本的repo。运行时需要指定repo项目的URL链接从而获取repo项目,该repo项目指定了你的目标项目(比如 (IMAX6 yocto项目)所包含的源码路径及目录分配。
repo init -u git://git.freescale.com/imx/fsl-arm-yocto-bsp.git -b imx-4.1-krogoth
执行时会出现错误“Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle”
解决方法:
从git上clone repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
然后将git-repo里面的repo文件复制到bin目录,然后chmod a+x ~/bin/repo. 再在同步源码的工作目录新建.repo文件夹,把git-repo重命名为repo复制到.repo目录下,重新执行repo init即可。