RPM-Packager Building RPMs should be easy. This is a manifest approach to easily create custom RPMs. Once this module is installed, building RPMs should be as simple as writing a YAML file that looks like the following: --- name: testpackage version: grep Changelog # version string or some command to retrieve it os: el6 dependencies: - perl-YAML > 0.5 - perl-JSON files: bin: /usr/local/bin # directory-based mapping. RPM will install CWD/bin/* to /usr/local/bin. user: apache # specify the owner of files. default: root group: apache # specify the group owner of files. default: root sign: # optionally, gpg signing of RPM gpg_name: ED16CAB # provide the GPG key ID passphrase_cmd: cat secret_file # command to retrieve the secret after_install: path/to/script # shellscript to run after the package is installed (%post) architecture: noarch # specify the architecture for this package (default: x86_64) Then run: rpm_packager.pl Note : You need to have fpm available in PATH. For GPG signing, you need to have proper keys imported. Note2: The 'iteration' field of RPM will be determined by the BUILD_NUMBER env variable plus 'os' field, like '150.el7'. If BUILD_NUMBER is unavailable, 1 will be used. You may also interact with the library directly as long as you pass in the manifest information in a hash: use RPM::Packager; my %args = ( name => 'testpackage', version => 'grep Changelog', files => { bin => '/usr/local/bin' }, dependencies => [ 'perl-YAML > 0.5', 'perl-JSON' ], os => 'el6', user => 'apache', group => 'apache', sign => { 'gpg_name' => 'ED16CAB', 'passphrase_cmd' => 'cat secret_file' }, after_install => 'foo/bar/baz.sh', architecture => 'noarch' ); my $obj = RPM::Packager->new(%args); $obj->create_rpm(); # RPM produced in CWD INSTALLATION To install this module, run the following commands: perl Makefile.PL make make test make install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc RPM::Packager You can also look for information at: RT, CPAN's request tracker (report bugs here) http://rt.cpan.org/NoAuth/Bugs.html?Dist=RPM-Packager AnnoCPAN, Annotated CPAN documentation http://annocpan.org/dist/RPM-Packager CPAN Ratings http://cpanratings.perl.org/d/RPM-Packager Search CPAN http://search.cpan.org/dist/RPM-Packager/ LICENSE AND COPYRIGHT Copyright (C) 2016 Satoshi Yagi This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see L.