makeself1
An utility to generate self-extractable archives.
Usage
makeself [options]
archive_dir
file_name
label
[startup_script]
[args]
Overview
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"
Releases
11 releases since Debian 3.1 (Sarge); the text changed 7 times.
--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).