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

Info

2.5.0