appimagetool vs makeself
appimagetool
github.commakeself
makeself.ioSide by side
| Figure | appimagetool | makeself |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 1 |
| Spec score · Software Packaging Tools | 7.8 (#11) | 8.0 (#6) |
| License | The repository’s original source code is licensed under the MIT License, subject to exceptions for files or directories with different terms and for dependencies. | Makeself is covered by the GNU General Public License version 2 and above; the maker says generated archives do not have to use that license. |
| Notable limitation | An AppDir is expected as input, and ARCH must be set when the tool cannot determine the architecture of the binaries, such as when the AppDir contains multiple architectures or only shell scripts. | The page notes that archives made before version 2.1.2 may have extraction problems on some GNU/Linux distributions because of obsolete head and tail syntax. |
| Purpose | appimagetool generates an AppImage from an existing AppDir. | Makeself is a shell script that creates self-extracting compressed TAR archives from directories. |
| Support | The AppImage project site points users to its Discourse forum and mailing list for questions, and to the #AppImage channel on irc.libera.chat for live chat. | The maintainer welcomes patches and bug reports through the GitHub project page and lists an email address for suggestions. |
Plans
In their own words
appimagetool
appimagetool is a free Linux command-line utility that creates an AppImage from an existing AppDir. It is intended for application authors packaging desktop Linux software for distribution across common Linux distributions. The project describes it as a low-level component and recommends community higher-level tools for most users. Command-line options cover listing AppImage files, setting or guessing update information, selecting Squashfs compression, and excluding files. GPG signing is supported with a signing key and additional arguments. When update information is embedded and zsyncmake is installed, the tool can create a zsync file. Build instructions list x86_64, i686, aarch64, and armhf targets. The current version downloads the latest AppImage runtime, or accepts a local runtime file. Update information can be guessed from GitHub Actions and GitLab CI environment variables. An AppDir is required, and ARCH must be set when binary architecture cannot be determined, such as with multiple architectures or shell scripts. Source code is under the MIT License, subject to stated exceptions and dependency terms.
makeself
makeself is a shell script for packaging directories as self-extracting compressed TAR archives. Each archive includes a shell stub that extracts its contents to a temporary directory and can run an optional command, such as an installation script, before removing temporary files. Archive options let users list files, check integrity, select an extraction target, request confirmation or skip the embedded command. Compression choices include gzip, bzip2, bzip3, xz, lz4 and zstd, among other compressors; using a non-default method requires the corresponding compressor to be installed for extraction. Archives can include CRC or MD5 checksums, with optional SHA256 support. Creation also offers GPG and OpenSSL encryption, which requires those tools on the archive user's system. The project aims to avoid Bash-specific features and run on Unix-compatible systems with a compatible Bourne shell and the required compression programs. It lists Linux, macOS, several Unix and BSD systems, and Windows through Cygwin or WSL among tested platforms. makeself is free and covered by GNU General Public License version 2 and above; generated archives do not have to use that license. The project notes that archives made before version 2.1.2 may have extraction problems on some GNU/Linux distributions because of obsolete head and tail syntax.