我和yocto一起工作了一段时间。这项工作涉及在元酸奶之上添加一层,从而在该层中添加新的或修改现有配方。它到目前为止一直在努力。
但是通过努力处理配方/规则语法和它们之间的关系,我的直觉告诉我,构建系统的内部实现以及构建系统如何与像我这样的最终开发人员交互会更容易涉及关系数据库,它定义了事物,它们的属性和它们之间的关系。
但我不是yocto专家(并且不能花时间考虑我的项目时间表)来评估使用关系数据库重新设计yocto。只是想知道这对任何人来说是否也有意义?
答案 0 :(得分:0)
作为在bitbake上广泛工作的开发人员之一,我可以看到为什么你会想到这一点,但由于很多原因,尤其是性能,它并没有多大意义。我们曾尝试使用sqlite作为bitbake中的数据存储后端,与我们的python数据存储相比,它的数量级太慢而无法使用。 元数据的灵活性也来自于注入python代码和数据库引擎的能力,这是不容易实现的。 总而言之,我怀疑bitbake或Yocto Project将以这种方式使用关系数据库。
答案 1 :(得分:0)
我试图在10月7日和17日对Richard Purdie的回复发表评论,但评论框中没有允许换行和长文...
我不知道除了yocto对象和规则之外还有一个python数据存储(变量,字符串文字,reg.exp。,文件类型的混合,例如.layer,bb,bbappend,conf,inc等和& #34;半明确","半文件"它们之间的语法和关系:()。
当然在python环境中,最有意义的是使用其数据存储和语言绑定的组合而不是另一个关系数据库。但是我想象一下关系数据库,数据存储和规则等每一件事都可以在一个地方实现,查询/修改也是一个集成部分,应该可以绑定到不同的语言/脚本。它实际上是一样的,只是" python方式"我不熟悉?
当它达到性能时,我们已经需要一台功能强大的机器(至强E5 16G DRAM 1T硬盘驱动器)来清理一个发行版(不需要从远程服务器获取源),并且相信其他人也会使用他们最好的PC建立一个发行版这么认真的工作。因此,如果不比较不同数据库引擎和编程语言的性能,这些语言可能会有很大差异,我会忘记性能因素。
将代码注入数据库引擎可能很困难。但我想在使用数据库引擎时,只需要一个不同的编程模式就可以完成工作:作业的逻辑在数据库引擎之外实现,此过程在需要时联系数据库引擎。
我实际上并没有使用yocto一段时间,因为我们的yocto构建设置实际上工作得非常好并且为我们现在和之前准备的层生成新的发行版。只是一些想法...