3 ms·
Does anyone have a use for a tool to assemble an RPM without using a .spec file and the rpmbuild process? I.e., something that works on a combination of pre-bu
by derekp7 12y ago
Does anyone have a use for a tool to assemble an RPM without using a .spec file and the rpmbuild process? I.e., something that works on a combination of pre-built binaries (in a .tar file) along with a .manifest file?
I was putting something together like that a while ago for packaging up software for internal use, that we get from outside vendors. I can dig it up and throw it on Github if anyone is interested.
- tpg 12y agoI use FPM (https://github.com/jordansissel/fpm https://github.com/jordansissel/fpm) for that and it works wonderfully. You can convert a tarball to RPM/deb pretty seamlessly most of the time.
- alanfranzoni 12y agoI use FPM for architecture independent projects as well. But if you're building for a different target you're out of luck. I was thinking about a docker-fpm-builder myself by the way, so maybe we'll meet again :-)
- nailer 12y agoNot automated, but quick and you could certainly automate it (alas I don't build many apps from source these days): - Make a spec with / (actually the build root) in %files section - Run the build - List the resulting package contents (which is whatever was put into the build root) - Manually remove any common dirs - Update the %files section and rebuild
- alanfranzoni 12y agoYou could use fpm. But the point is: can you pack every single dependency in your project? Usually you'll need something from the outside distro (libc usually). Then if you're building on a different host than your target, you may experience issues or different runtime behaviour.
- twic 12y agoIt depends what you're packaging. C/C++ code linked against dynamic libraries? Yes, you're going to struggle to package reliably without using the native tools. Java code packaged as a bundle of jars, with no dependency except a JVM? Go code compiled statically, with no dependency except libc? Simple portable packaging should do the job.