makeself - Man Page
An utility to generate self-extractable archives.
Syntax
makeself [options] archive_dir file_name label [startup_script] [args]
Description
This program is a free (GPL) shell utility designed to create self-extractable compressed archives from a directory. The resulting file appears as a shell script, and can be launched as is. The archive will then uncompress itself to a temporary directory and an optional arbitrary command will be executed (for example an installation script).
Makeself archives also include checksums for integrity self-validation (CRC and/or MD5/SHA256 checksums).
Options
The following options are supported:
- -v, ā--version
Prints out the makeself version number and exits.
- -h, ā--help
Print out help information.
- --tar-quietly
Suppress verbose output from the tar command
- --quiet
Do not print any messages other than errors
- --gzip
Compress using gzip (default if detected).
- --bzip2
Compress using bzip2.
- --bzip3
Compress using bzip3.
- --pbzip2
Compress using pbzip2.
- --xz
Compress using xz.
- --lzo
Compress using lzop.
- --lz4
Compress using lz4.
- --pigz
Compress using pigz.
- --zstd
Compress using zstd.
- --base64
Encode the archive to ASCII in Base64 format instead of compressing (base64 command required).
- --gpg-encrypt
Encrypt the archive using GPG. This will prompt for a password to encrypt with.
- --ssl-encrypt
Encrypt the archive using OpenSSL. This will prompt for a password to encrypt with.
- --keep-umask
Keep the umask set to shell default, rather than overriding when executing the self-extracting archive.
- --compress
Compress using the UNIX 'compress' command.
- --nocomp
Do not compress the data.
- --complevel lvl
Specify the compression level for gzip, bzip2, pbzip2, xz, zstd, lzo or lz4. Defaults to 9.
- --threads num
Specify the number of threads to be used by compressors that support parallelization.
- --tar-format opt
Specify the tar archive format (default is ustar); you may use any value accepted by your tar command (such as posix, v7, etc).
- --tar-extra opt
Append more options to the tar command line.
- --notemp
The archive will create archive_dir in the current directory and uncompress in ./archive_dir.
- --copy
Upon extraction, the archive will first copy itself to a temporary directory.
- --append
Append more files to an existing makeself archive. The label and startup scripts will then be ignored.
- --current
Files will be extracted to the current directory. Both --current and --target dir imply --notemp.
- --target dir
Extract directly to a target directory. Directory path can be either absolute or relative.
- --header file
Specify location of the header script.
- --help-header file
Add a header to the archive's help output.
- --cleanup file
Specify a cleanup script that executes on interrupt and when finished successfully.
- --follow
Follow the symlinks in the archive.
- --noprogress
Do not show the progress during the decompression.
- --nooverwrite
Do not extract the archive if the target directory already exists.
- --nox11
Disable automatic spawn of an xterm if running in X11.
- --nowait
Do not wait for user input after executing embedded program from an xterm.
- --nomd5
Do not create a MD5 checksum for the archive.
- --sha256
Adds a SHA256 checksum for the archive.
- --nocrc
Do not create a CRC32 checksum for the archive.
- --lsm file
LSM file describing the package.
- --license file
Append a license file.
- --packaging-date date
Use provided string as the packaging date instead of the current date.
Examples
Here is an example, assuming the user has a package image stored in a /home/joe/mysoft, and he wants to generate a self-extracting package named mysoft.sh, which will launch the "setup" script initially stored in /home/joe/mysoft:
makeself.sh /home/joe/mysoft mysoft.sh "Joe's Nice Software Package" ./setup
Here is also how I created the makeself.run archive which contains the Makeself distribution:
makeself.sh --notemp makeself makeself.run "Makeself by Stephane Peter" echo "Makeself has extracted itself"
Authors
Makeself has been written by Stephane Peter <megastep@megastep.org>. This man page was originally written by Bartosz Fenski <fenio@o2.pl> for the Debian GNU/Linux distribution (but it may be used by others).