Here's a simple script that helps package up RPM's - designed for packaging up php code from a /var/www/html/your_project directory - can be easily modified to suite other needs.
(hmm - I hope stripslashes() hasn't played around with anything too much)
Save the below into a file called "build_rpm.sh" and then run it from a shell like:
$ ./build_rpm.sh
It will ask you questions and then spit out an RPM.
Designed to run on RHEL5 boxes - if you want to run it on other systems then check that /usr/src/redhat/ exists. Might just be /usr/src/.
#!/bin/bash
# $BASENAME is the name of your software package
BASENAME="my_program_name";
SOURCELOC='/var/www/my_php_program';
echo "Building RPM for Your Program";
echo -n "Enter Version Number for RPM: (eg: 1) ";
read VERSION;
echo -n "Enter Release Number for RPM: (eg: 2) ";
read RELEASE;
cd /usr/src/redhat/SPECS/;
echo "Building $BASENAME-$VERSION-$RELEASE.spec";
echo "Summary: Summary to be included in RPM package
Name: $BASENAME
Version: $VERSION
Release: $RELEASE
Group: Applications/Internet
License: commercial
Source: $BASENAME-$VERSION-$RELEASE.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
%description
Description to be included in RPM package
%prep
%setup -q
%build
%install
cp -rvf \$RPM_BUILD_DIR/$BASENAME-$VERSION \$RPM_BUILD_ROOT
%clean
if( [ \$RPM_BUILD_ROOT != '/' ] ); then rm -rf \$RPM_BUILD_ROOT; fi;
%files
/.
%post
echo "your program has been installed in /var/www/your_program";
echo "restarting apache... (or whatever you want to do after install here) ";
/etc/init.d/httpd restart;" > "$BASENAME-$VERSION-$RELEASE.spec";
cd /usr/src/redhat/SOURCES/
echo "Making /usr/src/redhat/SOURCES/$BASENAME-$VERSION$SOURCELOC";
if( [ -d $BASENAME-$VERSION ] ); then
# needed if previous script build was inturrupted
echo " ( removing old directory $BASENAME-$VERSION ) ";
rm -rf $BASENAME-$VERSION;
fi;
mkdir -p $BASENAME-$VERSION$SOURCELOC;
echo "Copying Code From $SOURCELOC to ";
echo "/usr/src/redhat/SOURCES/$BASENAME-$VERSION$SOURCELOC";
# bit of a dodgey - so it copies .files
cp -rf $SOURCELOC $BASENAME-$VERSION$SOURCELOC/../;
# this program requires a custom apache config -
# just using apache as an example - you can put anything here
echo "Making the apache config";
mkdir -p $BASENAME-$VERSION/etc/httpd/conf.d/;
echo "<VirtualHost *:1234>
ServerAdmin your@email
DocumentRoot /var/www/your_app
ServerName workflow
<Directory "/var/www/your_app/">
AllowOverride All
</Directory>
</VirtualHost>" > $BASENAME-$VERSION/etc/httpd/conf.d/your_app.conf;
echo "Removing some un-needed files";
#any files from your locally running /var/www/your_app that
# you dont want to include in rpm
# eg : password config files etc..
rm -rf $BASENAME-$VERSION$SOURCELOC/includes/config/;
echo "Tar/Gzipping code";
tar -cf $BASENAME-$VERSION-$RELEASE.tar $BASENAME-$VERSION;
gzip $BASENAME-$VERSION-$RELEASE.tar;
echo "About to build RPM with rpmbuild";
sleep 5;
rpmbuild -ba /usr/src/redhat/SPECS/$BASENAME-$VERSION-$RELEASE.spec;
echo "RPM built in /usr/src/redhat/RPMS/i386/";
ls -lh /usr/src/redhat/RPMS/i386/;
ps: this script works fine for me - however use at own risk etc.. it does a few rm's - make sure it's not deleting anything you need.
|
Collector Comics is THE place to buy, sell, and research comics online. Launching soon.
Launch »
Screenshot »
|
|
Webitor is a kick-ass easy to use, easy to extend, non-database driven Content Management System. Version 2 with reseller plan coming soon.
Launch »
Version 1 »
|
|
GC Lounge is my own pet social network and test bed for social related code. Made by locals for locals.
Launch »
|
|
GG has indexed over half a million recent Trade Mark applications. This revolutionary tool is extremely valuable for industry experts.
Launch »
|
|
GCWiFi is the hub for techies interested in joining a ad-hoc wireless mesh spread across the Gold Coast
Launch »
|
|
Web based financial client management system
Launch »
|
|
OS Commerce modules and template modification
Launch »
|
| View More Projects » | |