gbs使用手册之gbs chroot

时间:2022-06-10 02:04:37
子命令chroot允许用户chroot到gbs build生成的buildroot(编译环境)目录.可以使用如下方法获得基本的使用帮助:
$ gbs chroot --help
注意:build root的默认位置是在~/GBS-ROOT/local/scratch.{arch}.*,如果在运行gbs build时使用了-B选项,则这个路径会不同.
实例:
  • 创建build root时添加更多的额外包
$ gbs build --extra-packs=zypper,vim -A i586 # install zypper,vim to build root

可以参考gbs build页获取更多的gbs build选项.
  • chroot到build root,例如 ~/GBS-ROOT/local/scratch.i686.0/
$ gbs chroot ~/GBS-ROOT/local/scratch.i686.0/
  • chroot为root用户
$ gbs chroot -r ~/GBS-ROOT/local/scratch.i686.0/
gbs chroot会因为"su:用户不存在"的错误失败,这个错误是由Tizen的仓库引起的.现除段可以通过编辑如下二个文件手动添加root用户:
$ echo "root:x:0:0:root:/root:/bin/bash" >>path/to/buildroot/etc/passwd
$ echo "root:x:0:" >>path/to/buildroot/etc/group
这样修改后gbs chroot就可以正常工作了.
  • chroot然后为了开发目的在build root中安装额外的包
chroot as 'root':
$ gbs chroot -r ~/GBS-ROOT/local/scratch.i686.0/
Configure tizen repo in the chroot env:
# zypper ar http://download.tizen.org/releases/daily/<release_id>/repos/main/ia32/packages tizen-main
# zypper ar http://download.tizen.org/releases/daily/<release_id>/repos/base/ia32/packages tizen-base
Install extra packages, for example, install gdb.
# zypper refresh
# zypper -n install gdb gcc
对于https仓库,需要指定"ssl_verify=no",例如:
# zypper ar https://user:passwd@tizen.org/releases/daily/<release_id>/repos/main/ia32/packages/?ssl_verify=no tizen-main
注意:
  • 如果想要作为root使用,需要指定-r选项,然后可以用zypper安装和移除软件包
  • 如果想要在build root里安装软件包,需要指定选项-n,如zypper -n install gdb
译注:zypper是OpenSuse发行版的软件管理软件,类似于Fedora的yum和Ubuntu的apt-get.使用时必须以root身份,否则没有权限更改软件包. 译者补充:默认情况下build root中仅有一个用于编译RPM的用户abuild,所以如果想要编译RPM时可以这样做:
gbs chroot <path-to-build-root>
然后把源码压缩包和spec文件放在home/abuild/rpmbuild/SOURCE下
$cd /home/abuild/rpmbuild/SOURCES
$rpmbuld -ba spec-file

原文: gbs chroot