Yocto本地存储库

时间:2017-03-06 13:56:17

标签: linux git yocto

在我们的办公室,员工使用yocto进行项目开发活动&所有都将从源存储库下载。

我想设置一个存储库类型的服务器(就像apt-cacher一样),其中所有客户端机器都将连接本地存储库&下载所需的一切。这可能吗?

如果我提出错误或理解错误,请更正。

2 个答案:

答案 0 :(得分:0)

一个想法是创建一个本地云驱动器并将其作为文件夹附加到计算机。

/conf/local.conf中,更改

SSTATE_DIR = "/path/to/your/sstate-repository"
DL_DIR ?= "/path/to/your/download/repository"

请注意,sstate会不时构建,因此使用此命令创建一个cron作业以删除其中的文件:

find ${sstate_dir} -name 'sstate*' -atime +3 -delete; fi

更多信息请参见第27页HERE

答案 1 :(得分:0)

假设你唯一关心的是源(而不是构建的包),你应该看一下PREMIRRORS variable。我在你的问题中不清楚的一件事是" source repository" (附带git标签),您的项目通常由许多组件构建,其中大约95%来自外部源,而有些来自内部存储库(Git / SVN /无论如何)。内部存储库通常不是一个大问题,你在附近有它们,它们倾向于工作,并且每个参与者都应该有一些访问它们。大多数问题实际上都发生在外部提取中,这就是镜像很方便的地方。

我通常在源文件管理中设置的方式如下:

  • 设置一些内部FTP服务器,比如" ftp://oe-src.example.com/" (使用匿名只读访问权限)
  • DL_DIR ?= "${HOME}/sources"中使用local.conf(这是以前在OE Classic时代的方式),它不是绝对必要的,它只是我比如能够在不同时擦除下载的源文件的情况下清理构建目录
  • PREMIRRORS中设置local.conf变量,如下所示:

    PREMIRRORS = "\
            git://.*/.* ftp://oe-src.example.com/ \n \
            ftp://.*/.* ftp://oe-src.example.com/ \n \
            http://.*/.* ftp://oe-src.example.com/ \n \
            https://.*/.* ftp://oe-src.example.com/ \n \
    "
    
  • 在您的CI工具中添加一个操作,以便在构建后通过FTP同步(在#34;添加到"模式,而不是删除旧源代码)~/sources(通过FTP / SCP / rsync /等等) )

通过这种方式,您总是拥有一组很好的源文件(BTW,也包括内部软件的VCS检出的tarball,因此它有助于减少内部VCS的负载),并且大多数源文件请求都会得到对此FTP感到满意,因此您不再遇到缺少源/校验和损坏/缓慢下载等问题。

我看到的唯一缺点是这个FTP对所有人开放,它有所有来源,包括你的内部,根据你的安全政策,这可能是也可能不是问题。这可以通过使用每个项目的SFTP镜像来减轻,这会导致用户密钥管理的额外开销,但我在实践中也做了这样的设置,所以当需要它时就可以完成。