Tokenicrat 词元 (@tokenicrat) 在 【计数器】年轻人的第一个包——AUR 打包不完全指南 中发帖
[!NOTE] 开始之前
本文所涉及的抽象概念,部分来自于词元的经验总结,部分经过了刻意简化,方便理解。
如果定义与权威资料冲突,请以后者为准。
软件包
早年的类 Unix 系统,安装软件是全手动的。购买或者下载软件(可能还要编译)之后,将二进制文件复制到 /usr/bin[1] 下面,默认配置文件复制到 /etc,等等。
而 软件包 的理念,对于有 OOP 经验的朋友来说,应该是很自然的了:将数据(二进制、库、普通数据等)和方法(安装步骤)打包,封装并自动化这个过程。
但是,在复杂的现代操作系统下,往往软件并不是独立的,而是需要依赖其他软件。另外,安装简单,移除就困难了,因为软件产生的各种文件遍布文件系统。
现代 Linux 发行版通过 软件包管理器 来解决这个问题,它负责安装软件包(执行安装步骤)、把文件操作记在数据库里、按照数据库移除软件包等,有些还要负责下载软件包。 ...