Alpine 的 APK 代表什么?

igo*_*s07 16 package-management alpine

Alpine Linuxapk用作它的包管理器,它的安装程序文件是.apk……就像 Android 文件一样。

这些有什么关系吗?如果是,如何?
如果不是,APK 代表什么(Alpine PacKage?),为什么他们为他们的包管理器选择相同的名称,因为这听起来可能令人困惑?网络上没有关于经理姓名的信息。

Esa*_*nen 10

Android 应用程序包 .apk文件是包含程序代码、资源、资产、证书和清单文件的软件档案。存档格式基于 JAR (Java ARchive),后者基于 ZIP 存档格式。(MIME 类型:application/vnd.android.package-archive.)

同样,Alpine Linux 包管理 .apk文件是tar.gz包含程序、配置文件和依赖项元数据的数字签名档案。它的存储库只是一个包含这些文件和索引文件的文件夹。这些.apk文件通常被称为 "a-packs",但我不确定扩展名是否来自该昵称,反之亦然 - 来源无关紧要。

这两种用法没有任何关系,并且这些软件包不兼容。

除了这些,一个.apk文件也可以参考

  • 4C Media, Inc. 的 Active Tutor(项目)
  • GameSpy Arcade (Service) by IGN Entertainment, Inc.
  • 微软公司的火车模拟器(打包活动)

不同的程序具有相同的文件扩展名并不少见。虽然文件扩展名最初是为了像.txt纯文本和.gfx图形(以及后来.csv的逗号分隔变量)一样通用和通用,但它们很快就与某些程序密切相关。

人们可能会认为每个程序都有很多不同的 AZ 和 0-9 三个字符组合,它们都有自己的扩展名,因为 36^3 导致 46,656 种变化。然而,由于没有任何权限分配扩展,程序员倾向于使用可以很容易地与他们的程序名称相关联的扩展,例如.wksMicrosoft Works 和.wpdWordPerfect 文档。因此,即使在广泛使用的文件格式中,我们也已经存在冲突:

  • .rpm:RealPlayer 媒体文件/RedHat 包管理器包/RunPaint 多色图形
  • .qif: QuickTime Image / Quicken Interchange Format / DESQview 压缩字体存档
  • .gba:GrabIt 脚本 / Game Boy Advance ROM 映像
  • 在许多视频文件格式中,扩展名仅说明容器,但文件类型可以包含不同类型的压缩,并且相同的压缩可用于不同的文件类型。

除了混淆之外,当系统将要打开的文件扩展名与某个程序(如 Windows 资源管理器)相关联时,这只会导致实际问题。除了用于区分文件类型的扩展名外,还有其他方法,例如解释器指令(例如Unix/Linux 脚本开头的#!/bin/bash shebangs)或(注册的)MIME 类型(参见RFC 6838),在发送实际文件之前用一行文本说明文件类型比特流,如 HTTP header Content-Type: text/html; charset=UTF-8。Adobe PDF 是一个很好的例子,因为文件以%PDF-1.5(PDF 和版本)开头,表明这是一个 PDF 文件,并且它可以包含XObjects,这些XObjects是其他文件类型的比特流,例如/Filter/DCTDecodeJPEG 图像

  • 很棒的回复!这让我想起了当我不得不将我的 Markdown 文件命名为 `.mkd` 以便 Nautilus 不会将它们称为 MegaDrive ROM(如在 `.md` 中) (3认同)
  • 感谢您的编辑,@SmartManoj。尽管 `#!/bin/bash` 语法在 Unix/Linux 中被称为 *shebang*(以及许多其他名称),但其通用术语仍然是 *解释器指令*。 (2认同)

Mik*_*giy 5

这是一个偶然的巧合。来自 Alpine 的网站和维基:

Alpine 的打包和开发系统一方面是 ArchLinux 的,另一方面是 Gentoo 和 FreeBSD 的。我们的包管理和构建实用程序的工作方式与 Arch 的非常相似。apk 来自 apk-tools 是 Alpine 的包管理器,就像 Arch 的一样pacman

Alpine Linux 的软件包是经过数字签名的 tar.gz 档案,其中包含程序、配置文件和依赖项元数据。它们的扩展名为 .apk,通常被称为“a-packs”。