Created
October 19, 2014 22:39
-
-
Save sjjohansen/4e7cae53b098a0410572 to your computer and use it in GitHub Desktop.
Setup Mock for rpm builds
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# pre-req packages | |
yum -y groupinstall "Development Tools" | |
yum -y install yum-utils | |
yum -y install epel-release | |
yum -y install mock rpm-build | |
yum -y install wget | |
yum -y install createrepo | |
# yum repos for downloading CentOS SPRMS | |
[root@localhost ~]# tail -16 /etc/yum.repos.d/CentOS-Vault.repo | |
[base-SRPMS-6.5] | |
name=CentOS-$releasever - Base SRPMS | |
baseurl=http://vault.centos.org/6.4/os/Source | |
gpgcheck=1 | |
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 | |
priority=1 | |
enabled=1 | |
[updates-SRPMS-6.5] | |
name=CentOS-$releasever - Base SRPMS | |
baseurl=http://vault.centos.org/6.4/updates/Source | |
gpgcheck=1 | |
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 | |
priority=1 | |
enabled=1 | |
# add the build user to the mock group | |
usermod -aG mock sjj | |
# setup build directories as build user. This uses git as an example: | |
mkdir ~/packages/buildroot.clean/{RPMS,SRPMS,SPECS,BUILD,SOURCES} -p | |
echo "%_topdir %(pwd)" > ~/.rpmmacros | |
# if we want to inspect the spec file or whatever: | |
mkdir -p ~/srpms/git/ | |
cd ~/srpms/git/ | |
yumdownloader --source git | |
mkdir unpack | |
cd unpack | |
rpm2cpio ../git-1.7.1-3.el6_4.1.src.rpm | cpio -idmv | |
# rebuild using mock | |
cd ~/packages | |
cp -a buildroot.clean/ git/ | |
cd git | |
rpm -ivh http://vault.centos.org/6.5/os/Source/SPackages/git-1.7.1-3.el6_4.1.src.rpm | |
rpmbuild -bs SPECS/git.spec | |
mock rebuild SRPMS/git-1.7.1-3.el6.1.src.rpm | |
# testing using the standard git.spec that comes with new git releases | |
mkdir -p ~/src/git | |
cd ~/src/git | |
wget https://www.kernel.org/pub/software/scm/git/git-2.1.0.tar.gz | |
tar zxvfp git-2.1.0.tar.gz | |
rm -rf ~/packages/git/ | |
cd ~/packages | |
cp -a buildroot.clean/ git/ | |
cd git | |
cp ~/src/git/git-2.1.0.tar.gz SOURCES/ | |
cp ~/src/git/git-2.1.0/git.spec SPECS/ | |
rpmbuild -bs SPECS/git.spec | |
mock rebuild SRPMS/git-2.1.0-1.el6.src.rpm | |
# create local repo | |
[root@localhost yum.repos.d]# cat /etc/yum.repos.d/local.repo | |
[local] | |
name=CentOS-$releasever - local packages for $basearch | |
baseurl=file:///yumrepo/CentOS/$releasever/local/$basearch | |
enabled=1 | |
gpgcheck=0 | |
protect=1 | |
# add the new rpms to that local repo for testing | |
sudo mkdir -p /yumrepo/CentOS/6/local/x86_64/RPMS | |
sudo cp /var/lib/mock/epel-6-x86_64/result/git*2.1.0*.rpm /yumrepo/CentOS/6/local/x86_64/RPMS | |
sudo createrepo /yumrepo/CentOS/6/local/x86_64/ | |
sudo yum remove git | |
sudo yum -y install git | |
git --version |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment