包管理器¶
基本概念¶
包管理器,顾名思义就是 包的管理器
这里所说的 包 含义广泛,包括但不限于
- 代码库/框架
- 命令行工具
- 开发环境组件
- 日常使用的软件
而 管理 的含义也很丰富,包含了多种操作,比如 安装、卸载、更新 等
开发人员经常需要使用包管理器。因为面对非常复杂的依赖,不太可能手动管理。比如
- 对于较大型的软件项目,可能存在非常复杂的树状/网状依赖
- 部分类
UNIX系统,由于 文件系统层次结构标准(FHS),软件无法安装在一个单独的目录里,而是散布在系统的各个角落;且出于对 单一职责原则 这一UNIX哲学的尊重和为节省磁盘空间,软件通常不附带自身完整的运行环境,必须依赖其它软件提供的共享库
分类¶
包管理器管理包的方式大致有 3 种类型,有些包管理器支持多种管理方式
- 在 项目本地 根据 清单文件/锁文件 来管理包
- 用户级或系统级 全局 管理包
- 创建、激活不同的 虚拟环境 来管理包
本文按如下方式对包管理器进行了简单的分类
- 语言包管理器 和特定编程语言有关,主要管理代码库/框架,偶尔也管理命令行工具。
- 系统包管理器 和特定编程语言无关,可管理命令行工具、开发环境组件、日常使用的软件,偶尔也能管理 C/C++ 的代码库/框架
语言包管理器¶
系统包管理器¶
Windows¶
- Scoop 官方自称为
安装器,但它事实上能完成包管理器的主要工作
Linux¶
- Homebrew 支持 macOS 和 Linux 平台,是系统包管理器的良好补充,提升了用户体验