Pacman allows you to make a machine independent, self-contained, self-installing, un-updateable "pacball" script from any package. Given a pacball, installing the package consists of just executing the pacball script. This means that installers don't need to use Pacman and don't need to have internet access. Let's see how it works...
To to a fresh working directory and do
% pacman -pacball Demo:Testwhen this is finished, you'll find a file
Test.md5-8005fc0df87dda07c5c147389ea453d3.shThis file is the self-installing pacball script for Demo:Test. To install Test, simply execute this script in any fresh directory. Because pacballs and their resulting installations can't be updated, pacballs provide a convenient way of archiving software environments. Because of this, an md5-checksum of the contents of the file is included in the name of all pacballs to uniquely identify the software.
Given a pacball such as Test.md5-8005fc0df87dda07c5c147389ea453d3.sh an optional argument allows you to install any package contained in it individually, for instance
Test.md5-8005fc0df87dda07c5c147389ea453d3.sh Pacmanwill, in this case, install just Pacman.
When creating a pacball, the optional argument -default PACKAGE_NAME let's you specify which package is installed by default when the pacball script is executed.
On some systems, if a pacball is greater than 2G in size an error to the effect "script too large" will occur when you try to execute the pacball. If this happens, using "% bash script" instead of "% script" will work.