What does Alpine's APK stands for?

Solution 1:

Android application package .apk file is a software archive containing the program's code, resources, assets, certificates, and manifest file. The archive format is based on the JAR (Java ARchive) which is based on the ZIP archive format. (MIME type: application/vnd.android.package-archive.)

Similarly, Alpine Linux package management .apk files are digitally signed tar.gz archives containing programs, configuration files, and dependency metadata. Its repository is just a folder containing these files and an index file. These .apk files are often called "a-packs", but I'm not sure whether the extension comes from that nickname or vice versa – the origin is pretty irrelevant.

These two usages aren't related in any way and the packages are incompatible together.

In addition to these, an .apk file may also refer to

  • Active Tutor (Project) by 4C Media, Inc.
  • GameSpy Arcade (Service) by IGN Entertainment, Inc.
  • Train Simulator (Packaged Activity) by Microsoft Corporation

It is not that uncommon that different programs have the same file extensions. While file extensions were originally meant to be generic and universal like .txt for plain text and .gfx for graphics (and later .csv for Comma-Separated Variables), they were soon closely associated with certain programs.

One could think that there are plenty of different three-character combinations of A-Z and 0-9 for every program have its own extension as 36^3 results in 46,656 variations. However, as there isn't any authority allocating extensions, programmers tend to use extensions that could be easily associated with the name of their program, like .wks for Microsoft Works and .wpd for WordPerfect document. Therefore we already have conflicts even in widely used file formats:

  • .rpm: RealPlayer Media file / RedHat Package Manager package / RunPaint Multicolor Graphic
  • .qif: QuickTime Image / Quicken Interchange Format / DESQview compressed font archive
  • .gba: GrabIt scripts / Game Boy Advance ROM image
  • In many video file formats the extension only tells about the container, but a file type can contain different types of compression and the same compression can be used across different file types.

Besides confusion, this only causes actual problems when a system associates a file extension to be opened with a certain program, like Windows Explorer. There are other methods than extensions for distinguishing file types like interpreter directives (e.g. #!/bin/bash shebangs at the beginning of a Unix/Linux script) or (registered) MIME type (see RFC 6838), a line of text stating the file type before sending the actual bitstream, like HTTP header Content-Type: text/html; charset=UTF-8. Adobe PDF is a good example as the file begins with %PDF-1.5 (PDF and version) stating this is a PDF file, and it can contain XObjects that are bitstreams of other filetypes, like /Filter/DCTDecode for JPEG images.

Solution 2:

It's a accidental coincidence. From Alpine's site and wiki:

Alpine's packaging and development systems are something a hybrid between ArchLinux's, on the one hand, and Gentooand FreeBSD's, on the other. Our package-management and build utilities work much like Arch's one. apk from apk-tools is Alpine's package manager, like Arch's pacman

And

Software packages for Alpine Linux are digitally signed tar.gz archives containing programs, configuration files, and dependency metadata. They have the extension .apk, and are often called "a-packs".