DragonFly On-Line Manual Pages
GZEXE(1) DragonFly General Commands Manual GZEXE(1)
gzexe -- create auto-decompressing executables
gzexe [-d] file ...
The gzexe utility uses gzip(1) to compress executables, producing exe-
cutables that decompress on-the-fly when executed. This saves disk
space, at the cost of slower execution times. The original executables
are saved by copying each of them to a file with the same name with a `~'
suffix appended. After verifying that the compressed executables work as
expected, the backup files can be removed.
The options are as follows:
-d Decompress executables previously compressed by gzexe.
The gzexe program refuses to compress non-regular or non-executable
files, files with a setuid or setgid bit set, files that are already com-
pressed using gzexe, files in /bin or /sbin, or programs it needs to per-
form on-the-fly decompression: sh(1), basename(1), mktemp(1), rm(1),
echo(1), tail(1), gzip(1), and chmod(1).
The gzexe utility replaces files by overwriting them with the generated
compressed executable. To be able to do this, it is required that the
original files are writable.
DragonFly 5.3 July 18, 2009 DragonFly 5.3
gzexe - compress executable files in place
gzexe name ...
The gzexe utility allows you to compress executables in place and have
them automatically uncompress and execute when you run them (at a
penalty in performance). For example if you execute ``gzexe
/usr/bin/gdb'' it will create the following two files:
-rwxr-xr-x 1 root root 1026675 Jun 7 13:53 /usr/bin/gdb
-rwxr-xr-x 1 root root 2304524 May 30 13:02 /usr/bin/gdb~
/usr/bin/gdb~ is the original file and /usr/bin/gdb is the self-uncom-
pressing executable file. You can remove /usr/bin/gdb~ once you are
sure that /usr/bin/gdb works properly.
This utility is most useful on systems with very small disks.
-d Decompress the given executables instead of compressing them.
gzip(1), znew(1), zmore(1), zcmp(1), zforce(1)
The compressed executable is a shell script. This may create some
security holes. In particular, the compressed executable relies on the
PATH environment variable to find gzip and some standard utilities
(basename, chmod, ln, mkdir, mktemp, rm, sleep, and tail).
gzexe attempts to retain the original file attributes on the compressed
executable, but you may have to fix them manually in some cases, using
chmod or chown.