rpmbuild-all.sh

#!/bin/bash
set -x

SRC_RPM_LIST=$(cd /mnt/src-iso/Packages; ls *.src.rpm)

for SRC_RPM in ${SRC_RPM_LIST[@]}
do
        echo ${SRC_RPM}
        if [ -f /root/rpmbuild-record/${SRC_RPM} ]; then
                echo "${SRC_RPM} already build."
        else
                echo "start build. "$(date)
                echo "1. install ${SRC_RPM}"
                rpm -ivh /mnt/src-iso/Packages/${SRC_RPM}
                cd /root/rpmbuild
                SPEC_FILE=$(ls SPECS/*.spec)
                echo "2. detected ${SPEC_FILE}"
                echo "3. yum-builddep"
                yum-builddep -y ${SPEC_FILE}
                echo "4. rpmbuild"
                rpmbuild -ba ${SPEC_FILE}
                echo "5. finished ${SPEC_FILE}"
                # 移动spec文件,方便下次寻找目标文件
                mkdir -p SPECS/bak
                mv ${SPEC_FILE} SPECS/bak/ -f
                # 记录编译完成,防止重复执行脚本重复编译,做到类似断点续传
                touch /root/rpmbuild-record/${SRC_RPM}
        fi
done

mount状态

/dev/sr0 on /mnt/iso type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/mnt/hostos/openEuler-20.03-LTS-SP3-everything-aarch64-dvd.iso on /mnt/everything-iso type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
/mnt/hostos/openEuler-20.03-LTS-SP3-source-dvd.iso on /mnt/src-iso type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)

repo源配置

[OS]
name=OS
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0
gpgkey=http://repo.openeuler.org/openEuler-20.03-LTS-SP3/OS/$basearch/RPM-GPG-KEY-openEuler

[everything]
name=everything
baseurl=file:///mnt/everything-iso
enabled=1
gpgcheck=0

[source]
name=source
baseurl=file:///mnt/src-iso
enabled=1
gpgcheck=0

效果

 

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐