Different Types of Packaging
Binary / Standalone
A binary or standalone package usually consists of a .zip or .tar.gz file that will first need to extracted. After extraction, a binary or script is executed to run the application.
Pros
- No additional software should need to be installed.
- Does not require any specific hardware support.
- Does not require internet access for installation.
- Performance is great.
- Easiest to install.
Cons
- Specific binaries need to be created for each OS supported.
- No easy way of getting updates.
- Requires extra effort from software maintainers to put the standalone package together.
Installer Packages
Installer packages consist of platform specific packages that, when executed, install the application to a specific directory and also can run some post installation configuration. File extensions typically are .exe or .msi for Windows and .deb or .rpm for linux.
Pros
- Does not require any specific hardware support.
- Performance is great.
- Easily updated if configured to use a repository.
- Easy to install using native OS tools.
Cons
- May require extra software dependencies.
- Packages are specific to OS.
- Installation Requires internet Access.
Virtual Machine Image
Virtual machine images consist of a base operating system with the application preinstalled and preconfigured. This is then distributed as a .ova or .vmdk files.
Pros
- Does not require a specific base OS.
- Does not require internet for installation, as long as the VM software is installed previously.
Cons
Docker image
A docker images consists of virtual container containing a minimal OS and the application pre installed and preconfigured. The most common form of distribution is in a source repository, or through Docker Hub.
Pros
Cons
Packaging Solution | Requires Additional Software | Requires Hardware Support | Requires Operating System Support | Requires Internet Access | Performance(1-5) | Ease of Install(1-5) | Easy to update | |||
---|---|---|---|---|---|---|---|---|---|---|
Standalone Binary | No | No | Standalone is specific to OS | No | 5 | 5 | No | |||
Installer Packages | Yes, dependencies | No | Packages are specific to OS | Yes | 5 | 4 | Yes | |||
Virtual Machine Images | Yes, VM software | Yes, AMD-V or VT-x | No | No | 3 | 4 | No | |||
Docker Images | Yes, docker and OS img | Yes, if using boot2docker | Host os and docker OS must match | Yes | 4 | 3 | Yes | |||