Alpine Linux使用apk
作为它的包pipe理器,它的安装文件是.apk
…就像Android文件一样。
这些有什么关系? 如果是的话,怎么样?
如果没有,APK代表什么( Alpine PacKage? ),以及为什么他们为包pipe理者select了相同的名字,因为这可能听起来很混乱? networking上没有关于经理姓名的信息。
Android应用程序包 .apk
文件是包含程序的代码,资源,资产,证书和清单文件的软件存档。 归档格式基于基于ZIP归档格式的JAR(Java归档)。 (MIMEtypes: application/vnd.android.package-archive
。)
同样, Alpine Linux软件包pipe理 .apk
文件是包含程序,configuration文件和依赖性元数据的数字签名tar.gz
文件。 它的存储库只是一个包含这些文件和一个索引文件的文件夹。 这些.apk
文件通常被称为“a-packs” ,但是我不确定扩展名是来自这个昵称,反之亦然 – 起源是非常不相关的。
这两种用法在任何方面都没有关系,而且这些软件包是不兼容的。
除了这些, .apk
文件也可以引用
不同的程序具有相同的文件扩展名并不罕见。 虽然文件扩展名最初是普通的,通用的,如纯文本的.txt
和graphics的.gfx
(以及稍后的逗号分隔variables的.csv
),它们很快就与某些程序密切相关。
人们可以认为,AZ和0-9有很多不同的三个字符组合,每个程序都有其自己的扩展名,其中36 ^ 3个结果为46656个变体。 但是,由于没有任何权限分配扩展名,程序员倾向于使用扩展名,这些扩展名可以轻松地与其程序的名称相关联,例如Microsoft Works的.wks
和WordPerfect文档的.wpd
。 因此,即使在广泛使用的文件格式中,我们也有冲突:
.rpm
:RealPlayer媒体文件/ RedHat包pipe理器包/ RunPaint多色graphics .qif
:QuickTime图像/ Quicken交换格式/ DESQview压缩字体存档 .gba
:GrabIt脚本/ Game Boy Advance ROM映像 除了混淆之外,当系统将文件扩展名与某个程序(如Windows资源pipe理器)关联时,这只会导致实际问题。 除扩展以外,还有其他一些方法来区分类似解释器指令 (如Unix / Linux脚本开头的#!/bin/bash
)或(注册的) MIMEtypes (参见RFC 6838 )的文件types,发送实际比特stream之前的文件types,如HTTP头Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=UTF-8
。 Adobe PDF就是一个很好的例子,因为该文件以%PDF-1.5
(PDF和版本)开头,指出这是一个PDF文件,它可以包含其他文件types的比特stream的XObjects ,如JPEG图像的/Filter/DCTDecode
。
这是偶然的巧合。 来自Alpine的网站和wiki:
另一方面,Alpine的打包和开发系统是ArchLinux与Gentoo和FreeBSD的混合体。 我们的软件包pipe理和构build工具与Arch的工作非常相似。
apk
的工具是Alpine的软件包pipe理器,就像Arch的pacman
和
Alpine Linux的软件包是经过数字签名的tar.gz归档文件,包含程序,configuration文件和依赖关系元数据。 他们的扩展名为.apk,通常被称为“a-packs”。