MAKESELF(1)

NAME
makeself - 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
    Base64-encode the final compressed archive (base64 command required). This runs after compression and can be combined with any compressor.

--gpg-encrypt
    Encrypt the archive using GPG. This will prompt for a password to encrypt with.

--gpg-asymmetric-encrypt-sign
    Asymmetrically encrypt and sign the archive using GPG.

--gpg-extra opt
    Append more options to the gpg command line.

--ssl-encrypt
    Encrypt the archive using OpenSSL. This will prompt for a password to encrypt with.

--ssl-passwd pass
    Use the given password to encrypt the data using OpenSSL.

--ssl-pass-src src
    Use the given src as the source of password to encrypt the data using OpenSSL.

--ssl-no-md
    Do not use "-md" option (for older OpenSSL).

--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.

--comp-extra opt
    Append more options to the compressor's command line.

--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.

--untar-extra opt
    Append more options when extracting the tar archive.

--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.

--preextract file
    Specify a pre-extraction script.

--cleanup file
    Specify a cleanup script that executes on interrupt and when finished successfully.

--cleanup-args args
    Arguments to the cleanup script (wrap in quotes to provide multiple arguments).

--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.

--nochown
    Do not give the target folder to the current user.

--chown
    Give the target folder to the current user recursively.

--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.

--needroot
    Require root permissions for extraction.

--export-conf
    Export configuration variables to the startup script.

ENVIRONMENT

SETUP_NOCHECK
    If set to 1, then checksum validation will be skipped.

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).