Your company here, and a link to your site. Click to find out more.

makeself - Man Page

An utility to generate self-extractable archives.


makeself [options] archive_dir file_name label [startup_script] [args]


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


The following options are supported:

-v, ā€‰--version

Prints out the makeself version number and exits.

-h, ā€‰--help

Print out help information.


Suppress verbose output from the tar command


Do not print any messages other than errors


Compress using gzip (default if detected).


Compress using bzip2.


Compress using bzip3.


Compress using pbzip2.


Compress using xz.


Compress using lzop.


Compress using lz4.


Compress using pigz.


Compress using zstd.


Encode the archive to ASCII in Base64 format instead of compressing (base64 command required).


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


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


Keep the umask set to shell default, rather than overriding when executing the self-extracting archive.


Compress using the UNIX 'compress' command.


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.


The archive will create archive_dir in the current directory and uncompress in ./archive_dir.


Upon extraction, the archive will first copy itself to a temporary directory.


Append more files to an existing makeself archive. The label and startup scripts will then be ignored.


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 the symlinks in the archive.


Do not show the progress during the decompression.


Do not extract the archive if the target directory already exists.


Disable automatic spawn of an xterm if running in X11.


Do not wait for user input after executing embedded program from an xterm.


Do not create a MD5 checksum for the archive.


Adds a SHA256 checksum for the archive.


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, 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"


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