手工合并仓库以便编译机只使用外部仓库:
(1)在kojihub服务器上使用root帐号执行如下合并仓库命令:
/usr/libexec/kojid/mergerepos -a i386 -o /tmp/koji/tasks/3931/173931/repo -g /mnt/koji/repos/dist-SD10-build/1785/groups/comps.xml -r
执行完成后,会在/tmp/koji/tasks/3931/173931/repo目录下生成一个repodata目录。
(2)将/mnt/koji/repos/dist-SD10-build/1788/i386目录下的repodata目录删除:
rm -rvf /mnt/koji/repos/dist-SD10-build/1788/i386/repodata
(3)将(1)生成的repodata目录复制到/mnt/koji/repos/dist-SD10-build/1788/i386目录:
cp -r /tmp/koji/tasks/3931/173931/repo/repodata /mnt/koji/repos/dist-SD10-build/1788/i386
(4)将外部仓库 目录下的i686和updates目录导出:
在192.168.2.184 上执行如下命令:
yum install -y /etc/exports
编辑/etc/exports文件:
[root@localhost Package]# cat /etc/exports
/home/user/fc23/Package/i686 *(sync,ro,no_root_squash)
/home/user/fc23/Package/updates *(sync,ro,no_root_squash)
[root@localhost Package]#
service nfs-server start
(5)在kojihub服务器上挂载外部仓库导出的目录:
mkdir -p /mnt/koji/repos/dist-SD10-build/1788/i386/i686
mkdir -p /mnt/koji/repos/dist-SD10-build/1788/i386/updates
?mount -t nfs -o ro 192.168.2.184:/home/user/fc23/Package/i686 /mnt/koji/repos/dist-SD10-build/1788/i386/i686
?mount -t nfs -o ro 192.168.2.184:/home/user/fc23/Package/updates /mnt/koji/repos/dist-SD10-build/1788/i386/updates
最后的合并后的仓库目录结构如下:
[kojiadmin@localhost i386]$ pwd
/mnt/koji/repos/dist-SD10-build/1788/i386
[kojiadmin@localhost i386]$ ls
blocklist i686 mount.sh pkglist repodata toplink updates
[kojiadmin@localhost i386]$
(6)这样,就可以让koji build时使用仓库1788进行编译,命令如下:
for pkg in $(ls *.src.rpm |sort -u )
do
koji --authtype=password --user=kojiadmin --password=spglinux build dist-SD10 --nowait --repo-id=1788 $pkg
done
(7)(5)步导出外部仓库的目录的目的是为了编译机可以访问到外部仓库的rpm包,否则会提示找不到rpm包。
阅读(2381) | 评论(0) | 转发(0) |