Enabling rpmbuild on Mac OSX
When I’m working on a project for deployment, typically I want to create an RPM and see how well my packaging code did when it was putting all the things inside that RPM, and importantly that they are in the right places inside said RPM. I must stress, that I have no intention to actually deploy this RPM - I just want it to make development more convenient (all real deployable binaries are created by a CI system).
By default, Mac OSX is not able to build RPM files, which is a bit of a bummer. This can be quickly remedied by using HomeBrew to install rpm
and rpmbuild
:
$ brew install rpm
$ brew install rpmbuild
By default, the rpm
command is useful for doing certain things like introspecting RPM file contents etc:
// listing the contents of the rpm
$ rpm -qlp <yourfile>.rpm
// list all possible metadata options that can be queried
$ rpm --querytags
// querying parts of the metadata (where ${x} is one of the values from --querytags)
$ rpm -qp <yourfile>.rpm --qf "%{DESCRIPTION}"
However, rpmbuild
is a bit more pesky and requires a little bit of wrangling as certain paths still look in default linux locations when trying to build an RPM (at least the brew bottle installed as of early 2014). As such, this can be fixed with a simple symbolic link:
$ sudo ln -s /usr/local/lib/rpm/ /usr/lib/rpm
Then the rpmbuild
process should work for you on your mac! Once again I must stress, this is NOT for deployment, and I cannot recommend you try to use these RPMs - I just find this a useful debugging tool from a packaging perspective.
Hope this saves someone else the time.