gbs使用手册之配置文件
Git Build System
GBS(git-build-system) 是支持Tizen软件包开发的面向开发者的命令行工具.它被用来基于Git仓库生成压缩包(tarball),还能用于本地编译,还可以用于提交代码到OBS(Tizen的主要的编译服务)
这部分包含更加详细的GBS信息.我们建议您首先阅读一下"
开发环境的搭建"章节.
配置文件(Configuration File)
配置文件包含gbs所必需的所有配置:比如,gbs build所需要的build root和远程软件包仓库URL;gbs remotebuild所需要的远程OBS服务器等等.
GBS使用的配置文件
GBS会在下面列出的文件夹中搜索配置文件.如果GBS找到了多个配置文件,它会按这样的顺序加载它们:
- /etc/gbs.conf #全局配置,这是gbs安装包中的且建议不要修改
- ~/.gbs.conf # 某一用户的配置
- $PWD/.gbs.conf # 某一特定项目或路径的配置
后面的配置选项会覆盖前面文件设置的选项.
全局参数-c(--conf)可用来指定一个配置文件.如果使用这个选项,GBS会加载这个配置文件并且忽略默认路径下的其他配置文件.
GBS会在~/.gbs.conf生成一个配置文件,如果无法找到配置文件.
面向场景风格的配置
一个场景可以包含GBS build和remotebuild的许多选项.一个配置文件中可以有任意多的场景,比如说针对移动设备,针对车载(IVI),等等.
默认的场景定义在[general]部分.如果修改那个场景,则GBS的所有行为都会发生改变.
部分名字的强制规则有:
- 场景部分的名字必须以profile开头
- OBS部分名字必须以obs开头
- 软件包仓库部分必须以repo开头
常见的授权信息可以设置在场景级别,而不必为在每个不同的obs和repo部分重复设置.如果不同的obs和repo有不同的授权信息,可以每个部分进行独立的设置.
一个配置文件的范例:
[general]
#当前的场景名字应该匹配一个场景部分的名字
profile = profile.tizen
buildroot = ~/GBS-ROOT/
[profile.tizen]
obs = obs.tizen
repos = repo.tizen_latest
# 如果这个场景没有设置buildroot,那么就使用通用部分的buildroot
buildroot = ~/GBS-ROOT-profile.tizen/
[obs.tizen]
url = https://api.tizen.org
user = xxxx
passwd = xxxx
# 给obs指定基础项目
#base_prj=Tizen:Main
# 给obs指定默认的目标项目, 默认是 home:<user>:gbs:<base_prj>
#target_prj=<specify target project>
[repo.tizen_latest]
url = http://download.tizen.org/releases/trunk/daily/ivi/latest/
#可选的用户名和密码,如果 与场景的用户名密码不同就需要设置
#user =
#passwd =
配置gbs build的软件包仓库(repo)
在repo部分配置仓库且部分的名字必须以repo开头.repo部分支持三种键值:url,user和password.
注意:当指定软件仓库时请使用发行版本而不要用快照版本.发行版本中的镜像和repo都是经过负责发布的工程师测试过然后发布的.而快照版本里的镜像和repo是后台服务自动创建的.无法保证其质量.
可以在一个场景中指定多个repo.例如:
[profile.tizen]
repos = repo.tizen_latest, repo.my_local
[repo.tizen_latest]
url = http://download.tizen.org/releases/trunk/daily/ivi/latest/
user = xxx
passwd = xxx
[repo.my_local]
#local repo must be an absolute path
url = /path/to/local/repo/
注意:本地repo必须是绝对路径.对于本地repo没有必要进行'createrepo',仅是含有RPM包的路径就可以了.
配置gbs build的buildroot
默认的gbsroot是~/GBS-ROOT,但是可以自定义.gbs还支持不同的场景配置不同的gbsroot,就像这样:
[profile.tizen]
obs = obs.tizen
repos = repo.tizen_latest
buildroot = ~/GBS-ROOT/
注意:白文密码会自动转为加密密码,所以当运行gbs时配置会变成下面这样.想修改密码时可以删除'passwdx'然后设置一个新的'passwd':
[obs.tizen]
url = https://api.tizen.org
user = xxxx
passwdx = QlpoOTFBWSZTWVyCeo8AAAKIAHJAIAAhhoGaAlNOLuSKcKEguQT1
配置多个场景
可以在一个配置文件中配置多个场景,比如,针对移动设备,针对车载等.general部分中可以指定默认的场景:
[general]
profile = profile.ivi
[profile.mobile]
...
[profile.ivi]
...
在命令行中指定场景
除了在配置文件中指定默认场景外,还可以在命令中用--profile/-P选项来指定.可以写场景的全部名字,如"profile.ivi",或者使用除了"profile"外的名字,如在上面的例子中"ivi",如:
$ gbs build --profile=profile.mobile -A i586
$ gbs remotebuild --profile=mobile -A i586 # 不加profile前缀来指定场景名字
在命令行中指定配置文件
选项--config/-C可以某一配置文件.一旦使用-C选项,默认的配置文件会被忽略.
例如:
gbs -C ~/gbs-my.conf build -A ...