包的含义:
Linux 的包是一个存档的文件,也就是一个归档的文件。
打包系统因为 Linux版本 的差异所以通常是不同的,商业上的 UNIX 系统上的打包系统不能工作在其他操作系统上,因为二进制文件不兼容而且源代码也无法获得,Linux 由于源代码通常是开放的所以大多是时候基于源代码的编译安装具有移植性,这样就实现了打包程序的跨系统。
红帽的打包系统 RPM 和Debian 打包系统比较常见。
以PRM包为例这里面包含有:
- 软件包安装的文件
- 与软件包(元数据)有关的信息:name、version、release、arch ; 软件包的描述、包的依赖关系(是否安装其他的软件包);授权许可信息;软件包更改日志 ;运行所需的其他文件列表;
- 脚本:安装、更新、删除此软件包可能运行的脚本,或者在安装、更新或删除软件包时触发的脚本。
早期的 Linux 通过源码编译的方式安装,特点是费时、费力,大型软件需要解决组件的依赖关系,在软件的校验、卸载、查询、升级的软件操作难度大。
引入 包管理技术 高效管理软件的生命周期。
主流的发行版的软件包的管理:
发行操作系统 | 包的格式 | 使用包的工具 |
红帽系 | .rpm | rpm、yum、dnf |
debian、ubuntu | .deb | apt、apt-cache、apt-get、dpkg |
suse | .rpm | rpm、yast、zypper |
arch | .pkg | Pamac |
PRM系统 通过软件包的 GPG 秘钥签名 来验证软件包的完整性,当发现与 GPG 签名不比配的时候,PRM 系统有权拒绝安装该软件包。