Alright so after trying to chase down the dependencies for various pieces of software for the n-th time and replicating work that various people do for all the different linux distributions I would like to know if there is a better way of bundling various pieces of software into one .rpm or .deb file for easier distribution.
My current set up for doing this is a frankenstein monster of various tools but mainly Vagrant and libguestfs (built from source running in Fedora because none of the distributions actually ship it with virt-diff
). Here are the steps I currently follow:
- Spin up a base OS using either a Vagrant box or by create one from live CDs.
- Export the
.vmdk
and call itbase-image
. - Spin up an exact replica of the previous image and go to town: use the package manager,
or some other means, to download, compile, and install all the pieces that I need. Once again, export the
.vmdk
and call itnon-base-image
. - Make both base images available to the Fedora guest OS that has libguestfs.
- Use
virt-diff
to diff the two images and dump that data to file calleddiff
. - Run several ruby scripts to massage
diff
into another format that contains the information I need and none of the stuff I don't like things in/var
. - Run another script to generate a command script for
guestfish
with a bunch ofcopy-out
commands. - Run the
guestfish
script. - Run another script to regenerate the symlinks from
diff
becauseguestfish
can't do it. - Turn the resulting folder structure into a .deb or .rpm file and ship it.
I would like to know if there is a better way to do this. You'd think there would be but I haven't figured it out.
Google Chrome
,Opera
does. Am I right ?. Are you interested in portable app (or portable directory) ? – Radian