mock知识点2——mock配置

1、mock配置文件

mock的配置文件在逻辑上可以分成两类,一类是通用配置(对于每个执行的mock命令都有效);另外一类是chroot配置(只有在选择相应的chroot时使用).

通用配置和chroot配置都可以在系统级(/etc/mock目录)或者用户级($HOME/.config目录下的文件)进行配置.

1.1、选择一个chroot配置

例如,要初始化Loongnix Server 8 loongarch64 chroot(使用/etc/mock/loongnix-8-loongarch64.cfg文件(因为Loongnix Server 8衍生自CentOS 8,所以这个文件修改自/etc/mock/centos-8-x86_64.cfg)),然后切换到chroot中,可以使用如下命令:

[huangyang@bogon ~]$ mock -r loongnix-8-loongarch64 --shell
INFO: mock.py version 3.5 starting (python version = 3.6.8, NVR = mock-3.5-2.lns8)...
Start(bootstrap): init plugins
INFO: selinux disabled
Finish(bootstrap): init plugins
Start: init plugins
......
Finish: chroot init
Start: shell
<mock-chroot> sh-4.4# ls
build
<mock-chroot> sh-4.4#

注意: 这种情况下,我们在-r选项中没有添加chroot配置文件后缀名“.cfg”。这样,首先到用户级配置目录$HOME/.config 搜索相应的“.cfg”文件,如果没有找到,那么就去系统级配置目录/etc/mock中查找对应的文件(并使用)。

-r选项也可以使用相对路径名。 但路径名必须代表一个存在的文件(可从当前工作目录访问):

[huangyang@bogon ~]$ sudo mock -r ./subdir/existing-config-file.cfg --shell
[huangyang@bogon ~]$ sudo mock -r loongnix-8-loongarch64

1.2、修改通用配置

通常情况下,如果只对当前用户有效的话,可以修改$HOME/.config/mock.cfg文件;如果需要改变的是系统mock的行为(对系统中每个用户都生效),那么就修改/etc/mock/site-defaults.cfg文件。通用配置的具体内容及含义参见文档/usr/share/doc/mock/site-defaults.cfg

1.3、修改chroot配置

/etc/mock/目录下有各种的xxx.cfg文件用于构建各种chroot。这些文件中包含与目标发行版相关的各种兼容性设置(RPM仓库位置、使用DNF或YUM、使用的工作目录 等等)。

这些系统文件是通过mock-core-configs(或其他)提供的,不鼓励用户更改这些文件(更改会破坏使用新版软件包自动更新此类文件)。在本地目录覆盖配置文件更安全:

[huangyang@bogon ~]$ cat $HOME/.config/mock/loongnix-8-loongarch64.cfg
# include the default configuration
include("/etc/mock/loongnix-8-loongarch64.cfg")
# install make into the minimal build chroot
config_opts['chroot_additional_packages'] = 'make'

也可以复制和编辑一个现有的配置文件,然后作为新的chroot配置文件:

[huangyang@bogon ~]$ cp /etc/mock/loongnix-8-loongarch64.cfg ~/.config/mock/foo.cfg

如果Koji中正在使用的是你所需要的配置,那么你可以使用Koji客户端工具来生成配置文件:

[huangyang@bogon ~]$ koji mock-config --tag lns8-build --arch=loongarch64 lns8 > ~/.config/mock/foo.cfg

1.4、载入配置文件的顺序

Mock中读取和评估配置文件的顺序如下:

  1. /etc/mock/site-defaults.cfg
  2. /etc/mock/<buildroot>.cfg or ~/.config/mock/<buildroot>.cfg
  3. ~/.mock/user.cfg
  4. ~/.config/mock.cfg (since mock-1.2.15)

即后面的配置文件中设置的值会覆盖之前加载的文件所设置的值。

posted @ 2023-03-03 20:30  streamlet_hy  阅读(472)  评论(0编辑  收藏  举报  来源