1 Introduction

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

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

2 Source Code

2.1 Introduction

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

2.2 Process

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

2.3 Merit and Demerit

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

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

3 Package Tools

3.1 Theory

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

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

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

3.2 Classify

Linux

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

Mac:

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