gbs chroot

'chroot' 命令可以使用户切换到buildroot目录下,这个目录是由gbs build生成的。 你可以使用--help选项获取更多chroot的用法:

$ 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