{{Short description|Type of computer archive}} {{Use mdy dates|date=March 2023}} {{Use American English|date=March 2023}} '''Package format''' is a type of archive containing computer programs and additional metadata needed by package managers;<ref>Justin Angelo Cappos, [https://books.google.com/books?id=77Ejx2DmxzgC&pg=PA128 Stork: Secure Package Management for VM Environments]{{Dead link|date=March 2023 |bot=InternetArchiveBot |fix-attempted=yes }}, ProQuest, 2008, p. 128;</ref> 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.<ref> {{Cite web |url=https://csrc.nist.gov/pubs/itlb/2018/05/protecting-software-integrity-through-code-signing/final |title=Protecting Software Integrity Through Code Signing|website=National Institute of Standards and Technology | series=ITL Bulletin | first1=David | last1=Cooper | first2=Larry | last2=Feldman | first3=Gregory | last3=Witte | date=May 23, 2018}}</ref>
Package formats that support code signing include .deb (Debian), .msi (Microsoft Windows), .apk (Android) and .ipa (IOS, IPadOS).
==Common formats==
=== Specialized formats === {| class="wikitable" !Format !Consumed by |- | AIR | Adobe AIR |- |Bottle |Homebrew |}
=== BSD-based formats === {| class="wikitable" !Format !Consumed by |- |.ipa |IOS, IPadOS |- | Ports (BSD) | pkgsrc, FreeBSD, OpenBSD<ref>{{Cite web |url=https://www.openbsd.org/faq/ports/ports.html |title=Ports - Working with Ports |website=OpenBSD.org}}</ref> |- |PKG |macOS, iOS, PlayStation 3, Solaris, SunOS, UNIX System V, Symbian, BeOS, Apple Newton |}
=== Linux-based formats === {| class="wikitable" !Format !Consumed by |- | AAB | Android |- |APK (Alpine) |Alpine Linux<ref>{{Cite web|url=https://wiki.alpinelinux.org/wiki/Alpine_package_format|title=Alpine package format - Alpine Linux|website=wiki.alpinelinux.org|access-date=2016-05-19}}</ref> |- |APK (Android) |Android |- |AppImage |Linux distribution-agnostic |- |Deb |Debian and its derivatives, such as Raspberry Pi OS, Kali Linux, Ubuntu, and Linux Mint<ref>{{cite web|url = https://help.ubuntu.com/community/InstallingSoftware|title = InstallingSoftware - Community Ubuntu Documentation|publisher = Help.ubuntu.com|access-date = 2013-04-24}}</ref> |- |ebuild |Gentoo Linux<ref>{{cite web|url = https://wiki.gentoo.org/wiki/Ebuild|title = ebuild|access-date = 29 July 2015}}</ref> |- |eopkg |Solus<ref>{{cite web|url = https://getsol.us/articles/package-management/basics/en/|title = Basics to Package Management|access-date = 1 May 2020|archive-url=https://web.archive.org/web/20200806030049/https://getsol.us/articles/package-management/basics/en/|archive-date=2020-08-06|url-status=dead}}</ref> |- |Nixpkg |Nix, NixOS, Home Manager |- |Portage |Gentoo Linux, ChromeOS<ref>{{Cite web |url=https://www.linode.com/docs/guides/portage-package-manager/ |title=Using Portage to Manage Packages in Gentoo |website=linode.com|date=July 15, 2021 }}</ref> |- |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,<ref>{{cite web|url = http://rpm.org/|title = rpm - Trac|access-date = 29 September 2014}}</ref> and SUSE Linux Enterprise, openSUSE |- |Snap |Linux distribution-agnostic, mainly developed for Ubuntu |}
=== Windows formats === {| class="wikitable" !Format !Consumed by |- |APPX and APPXBundle |Windows 8 and later, Windows Phone<ref>{{cite web|url = http://msdn.microsoft.com/en-us/library/windows/apps/bg182885.aspx|title = App packaging|access-date = 29 September 2014|archive-url=https://web.archive.org/web/20141008232922/http://msdn.microsoft.com/en-us/library/windows/apps/bg182885.aspx|archive-date=2014-10-08|url-status=dead}}</ref> |- |Windows Installer package / MSI |Windows Installer on Microsoft Windows |}
=== Generic formats === Arch Linux's Pacman<ref>{{cite web|url=https://www.archlinux.org/pacman/makepkg.conf.5.html|title= makepkg.conf(5) Manual Page}}</ref> and Slackware<ref>{{cite web|url=http://www.slackware.com/config/packages.php|title=The Slackware Linux Project: Configuration Help|access-date=29 September 2014}}</ref> use 'tar' archives with generic naming but specific internal structures.
==References== {{Reflist|30em}}
{{Archive formats}} {{Linux package management systems}} {{Linux}}
{{DEFAULTSORT:Linux Package Formats}} Category:Linux package management-related software Category:Package management systems