pacman
软件包管理器
Pacman 是一个软件包管理器,作为Arch Linux发行版的一部分,是Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。不管软件包是来自官方的 Arch 库还是用户自己创建,Pacman 都能方便的管理。
开发历史
受到另一个极简主义发行版CRUX的启发,Judd Vinet 在 2002 年 3 月启动了 Arch Linux 项目。选择这个名称是因为 Vinet 喜欢这个词的“主要”含义,如“头号敌人”。
最初仅适用于32 位 x86 CPU,第一个x86_64安装 ISO 于 2006 年 4 月发布。
Vinet 一直领导 Arch Linux 直到 2007 年 10 月 1 日,之后他因时间不够而辞职,并将该项目的控制权移交给 Aaron Griffin。
2012 年 8 月开始迁移到systemd作为其初始化系统,并于 2012 年 10 月成为新安装的默认系统。它取代了自发行版诞生以来一直使用的SysV 风格的初始化系统。
i686支持的终止于 2017 年 1 月宣布,2017 年 2 月的 ISO 是最后一个包含 i686 的ISO ,并于 2017 年 11 月使该架构不再受支持。从那时起,社区衍生品 Arch Linux 32 可以用于 i686 硬件。
2020 年 2 月 24 日,Aaron Griffin 宣布,由于他对该项目的参与有限,他将在投票期结束后将该项目的控制权移交给 Levente Polyak。这一变化还导致项目负责人职位增加了新的 2 年任期。
2021 年 3 月,Arch Linux 开发人员正在考虑将 Arch Linux 软件包移植到x86_64-v3 ,大致与英特尔 Haswell处理器时代相关。
2021 年 4 月,Arch Linux 安装映像开始默认包含引导安装脚本。
2021 年底,Arch Linux 开发人员发布了 Pacman 6.0,支持并行下载。
2022 年 2 月,Arch Linux 开发人员开始提供调试包。
软件简介
Pacman 包管理器是 Arch Linux 的一大亮点。Pacman 通过和主服务器同步软件包列表来进行系统更新,这使得注重安全的系统管理员的维护工作成为轻而易举的事情。这种服务器/客户端模式可以使用一条命令就下载/安装软件包,同时安装必需的依赖包。
功能和服务
pacman的官方并没有发布有图形界面的前端,其他的开发者发布了可用的pacman GUI图形前端。以下是一些可用的pacman GUI图形前端:
Qt/KDE界面
- Shaman: Shaman是多功能的Qt 4前端,它扩展了pacman一系列功能,图形化的设置,以及ABS的支持。
- pacmanager-svn: 用Qt 4开发,基于pacman的包管理器。
- kpacupdate: 适用与KDE系统消息栏的Pacman更新消息提示工具。
- octopi: 使用Qt编写的pacman图型前端。
- oktopi: octopi的分支,针对KDE所设计,已并入octopi。
TK/GNOME界面
- gtkpacman: 采用PyGTK2开发的pacman图形前端。
- alunn: 显示新的更新和消息的系统提示。
- guzuta: 另一个采用PyGTK开发的前端。
- pacmon-svn: 提示可用更新的任务栏部件。
- pacupdate: 提示系统更新的系统提示。
- wakka: gtkpacman的一个分支。
- kalu: 在系统匣显示官方新闻及更新(包含官方套件库及AUR),同时包含了一个系统升级的图形前端。
PacmanXG4 — 是一个 pacman 的 GUI 前端。不依赖于GTK 或者 Qt,仅仅依赖X11。它可以完成以下功能:
- 安装/移除/升级软件包
- 搜索/过滤软件包
- 获取软件包信息,包括截图
- 降级软件包 (需要 AUR/downgrade 工具)
- 刷新包数据库,同步镜像
- 一键式系统升级
- Find out which package a specific file belongs to (include file with pkgfile utility)
- YAOURT 支持
语法
Pacman 的操作主要通过在终端中输入命令来完成。以下是一些常用的命令和参数:
同步包
在终端机里输入:
pacman -S \u003cpackage\u003e
这样系统会自动下载封包`\u003cpackage\u003e`以及所有的依存套件,同时进行一系列套件的安装过程进行。
参数:
- `-s --search \u003c正则表达式\u003e`:会在所有源列表中搜索与表达式匹配的包并列出
- `-u --sysupgrade`:将升级所有版本比源列表低的包,通过调用两次可以变为与源列表不相等的包,该命令对于从不稳定源切换至稳定源十分有用
- `-w --downloadonly`:只返回搜索结果,不进行安装或升级操作
- `-y --refresh`:下载主源列表最新副本,通常配合-u使用,通过调用两次即可强制下载,即使版本相同
移除
在终端机里输入:
pacman -R \u003cpackage\u003e
这样系统会自动移除`\u003cpackage\u003e`以及任何依此存套件的其它套件。
参数:
- `-c --cascade`:递归删除该包及所有与该包有依赖关系的包,请小心使用该参数
- `-u --uneeded`:删除向下没有依赖关系的包,比起-c,本参数更为安全
更新
在终端机中输入:
pacman -U \u003cpackage\u003e
这样系统可以同步已经在本地的包至最新状态。
参考资料
目录
概述
开发历史
软件简介
功能和服务
参考资料