MAKESELF(1)
π MAKESELF π
okay bestie, sit down, hydrate, because i'm about to tell you about the most iconic little utility in the whole General Commands Manual lineup. it's called makeself, and it makes self-extractable archives. no cap.
β¨ NAME β¨
makeself β an utility to generate self-extractable archives. that's it. that's the whole vibe. π
πΈ SYNTAX πΈ
makeself [options] archive_dir file_name label [startup_script] [args]
π¦ DESCRIPTION π¦
so this program is a free (GPL) shell utility designed to create self-extractable compressed archives from a directory. the resulting file? it literally looks like a plain shell script. and you can just... launch it as is. like, that's the whole trick, and it's giving genius energy fr fr. π§
when you run it, the archive uncompresses itself to a temporary directory, and then an optional arbitrary command gets executed β think an installation script, y'know, the classic move.
and here's the part that's lowkey important: makeself archives also include checksums for integrity self-validation β that's CRC and/or MD5/SHA256 checksums. so the archive can check itself. main character behavior honestly. π
π OPTIONS π
the following options are supported:
-v,--versionβ prints out the makeself version number and dips out. that's all. exit stage left. β¨-h,--helpβ print out help information. your little cheat sheet.--tar-quietlyβ suppress verbose output from thetarcommand. shhh. π€«--quietβ do not print any messages other than errors. silence mode activated.--gzipβ compress usinggzip(this is the default if detected). the reliable friend. π--bzip2β compress usingbzip2.--bzip3β compress usingbzip3.--pbzip2β compress usingpbzip2.--xzβ compress usingxz.--lzoβ compress usinglzop.--lz4β compress usinglz4.--pigzβ compress usingpigz.--zstdβ compress usingzstd.--base64β encode the archive to ASCII in Base64 format instead of compressing (thebase64command is required for this btw).--gpg-encryptβ encrypt the archive using GPG. heads up, this will prompt for a password to encrypt with. keep it secret, keep it safe. π--ssl-encryptβ encrypt the archive using OpenSSL. also prompts 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 UNIXcompresscommand. vintage vibes.--nocompβ do not compress the data. raw. unbothered. unbothered and raw. π--complevel lvlβ specify the compression level forgzip,bzip2,pbzip2,xz,zstd,lzoorlz4. defaults to 9 (max effort, slay).--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. multi-threaded and multitasking, queen behavior. π--tar-format optβ specify thetararchive format (default isustar); you may use any value accepted by yourtarcommand (such asposix,v7, etc).--tar-extra optβ append more options to thetarcommand line.--notempβ the archive will createarchive_dirin 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. note that the label and startup scripts will then be ignored. they're just not invited to this party bestie. π--currentβ files will be extracted to the current directory. both--currentand--target dirimply--notemp. iykyk.--target dirβ extract directly to a target directory. the 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. runs before the extraction, as the name suggests, we been knew.--cleanup fileβ specify a cleanup script that executes on interrupt and when finished successfully. tidy queen. π--followβ follow the symlinks in the archive.--noprogressβ do not show the progress during the decompression. no little bar for you.--nooverwriteβ do not extract the archive if the target directory already exists. boundaries. π--nox11β disable automatic spawn of anxtermif running in X11.--nowaitβ do not wait for user input after executing embedded program from anxterm.--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. time travel, but make it legal.
π ENVIRONMENT π
SETUP_NOCHECKβ if set to1, then checksum validation will be skipped.
okay so real talk: that means the integrity check just doesn't happen. so like, know what you're doing, bestie. π
β EXAMPLES β
here's 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
and 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). generous icon behavior honestly.
okay that's the whole page, you ate it, you understood it, go make some self-extracting archives and be the main character of your own shell script. πΈ
this was version 2.5.0, and yeah β this is the MAKESELF(1) page. mwah. π
π¦ where this page comes from
- fedora 44: makeself 2.6.0-2.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms