Package format

From Wikipedia, the free encyclopedia

Template:Short description Template:DMCA Template:DMCA Package format is a type of archive containing computer programs and additional metadata needed by package managers;[1] an instance of this type of archive is called a package. While the archive file format itself may be unchanged, package formats carry additional metadata, such as a manifest file or certain directory layouts. Packages may contain either source code or executable files.

Packages may be converted from one type to another with software such as Alien.

Software supply chain and security

Packages are an important component in managing the security and integrity of the software supply chain. Packages containing executables and configuration can be digitally signed to establish the integrity of running software and protect against tampering.[2]

Package formats that support code signing include .deb (Debian), .msi (Microsoft Windows), .apk (Android) and .ipa (IOS, IPadOS).

Common formats

Specialized formats

Format Consumed by
AIR Adobe AIR
Bottle Homebrew

BSD-based formats

Format Consumed by
.ipa IOS, IPadOS
Ports (BSD) pkgsrc, FreeBSD, OpenBSD[3]
PKG macOS, iOS, PlayStation 3, Solaris, SunOS, UNIX System V, Symbian, BeOS, Apple Newton

Linux-based formats

Format Consumed by
AAB Android
APK (Alpine) Alpine Linux[4]
APK (Android) Android
AppImage Linux distribution-agnostic
Deb Debian and its derivatives, such as Raspberry Pi OS, Kali Linux, Ubuntu, and Linux Mint[5]
ebuild Gentoo Linux[6]
eopkg Solus[7]
Nixpkg Nix, NixOS, Home Manager
Portage Gentoo Linux, ChromeOS[8]
Flatpak Linux distribution-agnostic
.app, .hap HarmonyOS, OpenHarmony, Oniro OS and Linux based Unity Operating System
PISI Pardus
.pkg.tar.zst Arch Linux
PUP and PET Puppy Linux (PUP format is deprecated since version 3.0)
RPM Red Hat Enterprise Linux, Fedora, derivatives such as CentOS,[9] and SUSE Linux Enterprise, openSUSE
Snap Linux distribution-agnostic, mainly developed for Ubuntu

Windows formats

Format Consumed by
APPX and APPXBundle Windows 8 and later, Windows Phone[10]
Windows Installer package / MSI Windows Installer on Microsoft Windows

Generic formats

Arch Linux's Pacman[11] and Slackware[12] use 'tar' archives with generic naming but specific internal structures.

References

Page Template:Reflist/styles.css has no content.

  1. ^ Justin Angelo Cappos, Stork: Secure Package Management for VM Environments[permanent dead link], ProQuest, 2008, p. 128;
  2. ^ Page Module:Citation/CS1/styles.css has no content.Cooper, David; Feldman, Larry; Witte, Gregory (May 23, 2018). "Protecting Software Integrity Through Code Signing". National Institute of Standards and Technology. ITL Bulletin.
  3. ^ Page Module:Citation/CS1/styles.css has no content."Ports - Working with Ports". OpenBSD.org.
  4. ^ Page Module:Citation/CS1/styles.css has no content."Alpine package format - Alpine Linux". wiki.alpinelinux.org. Retrieved May 19, 2016.
  5. ^ Page Module:Citation/CS1/styles.css has no content."InstallingSoftware - Community Ubuntu Documentation". Help.ubuntu.com. Retrieved April 24, 2013.
  6. ^ Page Module:Citation/CS1/styles.css has no content."ebuild". Retrieved July 29, 2015.
  7. ^ Page Module:Citation/CS1/styles.css has no content."Basics to Package Management". Archived from the original on August 6, 2020. Retrieved May 1, 2020.
  8. ^ Page Module:Citation/CS1/styles.css has no content."Using Portage to Manage Packages in Gentoo". linode.com. July 15, 2021.
  9. ^ Page Module:Citation/CS1/styles.css has no content."rpm - Trac". Retrieved September 29, 2014.
  10. ^ Page Module:Citation/CS1/styles.css has no content."App packaging". Archived from the original on October 8, 2014. Retrieved September 29, 2014.
  11. ^ Page Module:Citation/CS1/styles.css has no content."makepkg.conf(5) Manual Page".
  12. ^ Page Module:Citation/CS1/styles.css has no content."The Slackware Linux Project: Configuration Help". Retrieved September 29, 2014.

Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found. Lua error in package.lua at line 80: module 'Module:Navbox/configuration' not found.