Reference

makeself(1)

An utility to generate self-extractable archives.

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

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.

Here is an example, assuming the user has a package image stored in a /home/joe/mysoft,

EXAMPLES

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 <[email protected]>. This man page was originally written by Bartosz Fenski <[email protected]> for the Debian GNU/Linux distribution (but it may be used by others).

History

--base64 since Debian 13 (Trixie); --bzip3 since Debian 13 (Trixie); --cleanup since Debian 11 (Bullseye); --complevel since Debian 8 (Jessie); --gpg-encrypt since Debian 13 (Trixie); --help-header since Debian 13 (Trixie); --keep-umask since Debian 13 (Trixie); --license since Debian 13 (Trixie); --lz4 since Debian 9 (Stretch); --lzo since Debian 9 (Stretch); --nooverwrite since Debian 13 (Trixie); --noprogress since Debian 8 (Jessie); --packaging-date since Debian 13 (Trixie); --pbzip2 since Debian 8 (Jessie); --pigz since Debian 13 (Trixie); --quiet since Debian 9 (Stretch); --sha256 since Debian 13 (Trixie); --ssl-encrypt since Debian 13 (Trixie); --tar-extra since Debian 13 (Trixie); --tar-format since Debian 13 (Trixie); --tar-quietly since Debian 9 (Stretch); --target since Debian 8 (Jessie); --threads since Debian 13 (Trixie); --xz since Debian 8 (Jessie); --zstd since Debian 13 (Trixie).