Introduction

Reference: UNIX 平台下软件安装包的演变和现代化

Introduction: 主要阐述 Linux 软件安装, 从源码到软件包管理机制的演变, 以及各种不同安装方式的优缺点.

Source Code

Introduction

开源系统, 用户可以自由下载源码, 根据本地环境以及配置, 自由的安装, C 语言的设计哲学: 一次编写, 到处安装

Process

  • Download source code
  • Install Configure Environment accross by README/INSTALL
  • Configure
  • make && make install

Merit and Demerit

Merit: 定制化, 个性化安装, 编译选项(提高性能), 安装目录

Demerit: 繁琐的命令, 依赖的工具链, 导致很多 Linux 系统的使用者(并非开发者)无法快速的使用.

Package Tools

Theory

Linux 开发商基于”固定的硬件平台”和”固定版本的操作系统”编译准备”安装”/“升级”的软件, 将如下文件全部打包放到”包管理”源上(软件仓库):

  • 预先检测系统与依赖软件的脚本;
  • 记录当前版本软件详细信息的文件;
  • 编译好的软件包;

当前软件的使用者, 仅仅需要一个简单的安装命令, 就可以下载并运行安装操作, 之后开启: 自动检测–>安装依赖–>安装包–>写入软件管理机制中以便后续的升级/卸载;

Classify

Linux

  • Dpkg: Debian Linux 社区, 见笔记dpdk
  • RPM: Ret Hat 公司, 见笔记yum

Mac:

  • Dmg: 苹果的压缩镜像文件(类似 windows 下的 iso), 里面包含”应用程序.app 图片”, “/application/xx”文件夹, 可以绿色的安装和卸载.
  • MacPorts: 基于 FreeBsd 的 port 移植的包管理. 其会尽可能的独立于现有系统库, 安装软件的时候可能需要编译安装依赖库, 可能耗时长, 但是独立.
  • Homebrew: 类似 mac 上的 apt-get, 见笔记brew. 其会依赖系统现有库, 相比 MacPorts, 不太干净.