Building RPM packages
RPM’s are Redhat packages for installing software on Redhat Linux machines. Creating the RPMs is done by the software owner.
Setting up a build environment
To be able to build under a normal user account you need to set it up once on your build/development host.
First you will need to create the Directory structure by running the following command:
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
After that you will have to create the ~/.rpmmacros file with the following content:
%_signature gpg
%_gpg_name <YOURNAME>
%packager <YOUR_E_MAIL>
%_topdir %(echo $HOME)/rpmbuild
%_builddir %{_topdir}/BUILD
%_rpmdir %{_topdir}/RPMS
%_sourcedir %{_topdir}/SOURCES
%_specdir %{_topdir}/SPECS
%_srcrpmdir %{_topdir}/SRPMS
%_buildrootdir %{_topdir}/BUILDROOT
Don’t forget to replace <YOURNAME> and <YOUR_E_MAIL> with the appropriate values.
Installing source RPM’s
If your build environment is set up correctly you can install source RPM’s as a normal user with the following command:
rpm -ivh <filename.src.rpm>
Building RPM’s
You can edit/create your SPEC file ~/rpmbuild/SPECS/<filename.spec> and edit/add SOURCE files in ~/rpmbuild/SOURCES/
The new RPM can be created by running the following command:
rpmbuild -ba ~/rpmbuild/SPECS/<filename.spec>
The new RPM files will be written to ~/rpmbuild/RPMS/<arch> and your new source RPM’s will be written to ~/rpmbuild/SRPMS/
Needed Packages
To build rpm packages on RedHat you need al least the following packages to be installed :
rpm-build redhat-rpm-config gcc kernel-headers-`uname -r` kernel-devel-`uname -r`