pac man
Arch有一个易用的二进制包管理系统----Pacman),它可以让你仅凭一条命令就升级整个系统。Pacman用C语言编写,具有轻量、简便和快速的特点。Arch还提供一个类似ports的包构建系统(Arch Build System),通过它可以轻松从源码构建和安装软件包,并用一个命令完成同步。你甚至可以用一个命令重新构建整个系统。Arch的官方源提供了数千种高质量的i686/x86-64二进制包来满足你的软件需求。另外,为鼓励社区开发和贡献代码,Arch还提供Arch User Repository,它包含了数千个由用户维护的PKGBUILD脚本,配合makepkg工具,从编译到打包一气呵成。用户还能轻松构建和维护属于自己的自定义软件源。一 升级软件包一个 pacman 命令就可以升级整个系统。花费的时间取决于系统有多老。这个命令会同步非本地(local)软件仓库并升级系统的软件包:# pacman -Syu警告: 由于 Arch 的滚动升级特性,升级系统有着不可预见的结果。因此,除非有着空闲时间并准备好处理突发问题,请谨慎升级。二 pacman 包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来(参见makepkg和ABS)。不管软件包是来自官方的 Arch 库还是用户自己创建,pacman 都能方便得管理。pacman 通过和主服务器同步软件包列表来进行系统更新,这使得注重安全的系统管理员的维护工作成为轻而易举的事情。这种服务器/客户端模式可以使用一条命令就下载/安装软件包,同时安装必需的依赖包。pacman 用 C 语言编写,使用 .pkg.tar.xz 打包格式。三 配置pacman 的配置文件位于/etc/pacman.conf。 man pacman.conf 可以查看配置文件的进一步信息。通用选项通用选项都在[options]段。阅读 man 手册或者查看默认的 pacman.conf 可以获得有关信息和用法。1 不升级软件包如果由于某种原因,用户不希望升级某个软件包,可以加入内容如下:IgnorePkg = 软件包名多软件包可以用空格隔开,也可是用 glob 模式。如果只打算忽略一次升级,可以使用 --ignore 选项。忽略了的软件包可通过 pacman -S 升级。2 不升级软件包组和软件包一样,也可以不升级某个软件包组:IgnoreGroup = gnome3 跳过要跳过某些文件夹的安装,可以将它们放到 NoExtract 中,例如不想安装 systemd unit 文件:NoExtract=usr/lib/systemd/system/*4 软件仓库这部分定义使用的软件仓库,在 /etc/pacman.conf 中引用,可以直接设置或者从其它文件包含。所有官方软件仓库都使用同一个包含了'$repo' 的 /etc/pacman.d/mirrorlist文件,因此只需要维护一个列表。 下面例子中使用官方软件仓库,用 mirrorlist 设定镜像的一个范例。#[testing]#SigLevel = PackageRequired#Include = /etc/pacman.d/mirrorlist[core]SigLevel = PackageRequiredInclude = /etc/pacman.d/mirrorlist[extra]SigLevel = PackageRequiredInclude = /etc/pacman.d/mirrorlist#[community-testing]#SigLevel = PackageRequired#Include = /etc/pacman.d/mirrorlist[community]SigLevel = PackageRequiredInclude = /etc/pacman.d/mirrorlist# 如果打算在 x86_64 系统上运行32位软件,启用 multilib 软件仓库。#[multilib-testing]#SigLevel = PackageRequired#Include = /etc/pacman.d/mirrorlist#[multilib]#SigLevel = PackageRequired#Include = /etc/pacman.d/mirrorlist# 自定义软件仓库实例,如何创建软件仓库参见 pacman man手册页。#[custom]#SigLevel = Optional TrustAll#Server = file:///home/custompkgs警告: 使用 [testing] 仓库的时候要谨慎,这个仓库里面开发比较活跃,可能导致某些软件包不能工作。推荐使用 [testing] 的用户订阅 arch-dev-public 邮件列表以获得最新信息。软件包的安全性pacman 4 支持软件包签名。语句 SigLevel = Required DatabaseOptional 将启用全局签名验证,但会被每个软件仓库的 SigLevel 行所覆盖。详情参见 pacman-key.用法pacman 的其他示例请阅读man pacman。下面只是一个可执行操作的小部分示范。安装软件包安装指定的包安装或者升级单个软件包,或者一列软件包(包含依赖包),使用如下命令:# pacman -S package_name1 package_name2 ...用正则表达式安装多个软件包(参见 pacman 小贴士和这个帖子):# pacman -S $(pacman -Ssq package_regex)有时候在不同的软件仓库中,一个软件包有多个版本(比如[extra]和[testing])。可以选择一个来安装:# pacman -S extra/package_name安装包组一些包属于一个可以同时安装的包组。例如,运行下面的命令# pacman -S gnome会提醒用户选择 gnome 内需要安装的包。有的包组包含大量的软件包,有时用户只需其中几个。除了逐一键入序号外,pacman 还支持选择或排除某个区间内的的软件包:Enter a selection (default=all): 1-10 15这将选中序号 1 至 10 和 15 的软件包。而Enter a selection (default=all): ^5-8 ^2将会选中除了序号 5 至 8 和 2 之外的所有软件包。想要查看哪些包属于 gnome 组,运行:# pacman -Sg gnome也可以访问 /repo/example.pkg.tar.xz不支持部分升级Arch Linux 是滚动发行版,新库 版本将不断被推送到源。开发者和信任用户会按照需要重新构建源中的所有软件包。如果有本地安装的版本(例如 AUR 软件包),需要在它们的依赖关系升级了soname时重新编译。也就是说,部分升级是不被支持的。不要使用 pacman -Sy package 或等价命令如 pacman -Sy 之后再 pacman -S package。在安装软件包前请更新源并升级。同理请特别注意 IgnorePkg/IgnoreGroup 的使用。如果进行了部分升级,二进制包因为找不到链接库而损坏,不要通过简单的符号链接进行修正。库升级 soname 是因为它们不再向前兼容。只要 pacman 可以运行,使用更新的源进行 pacman -Syu 就能修复这些问题。一般注意事项警告: 小心使用 --force 开关。使用不当会造成大问题。 请只在 Arch 新闻里要求这么做的时候才用。pacman 附带了许多实用工具能让系统使用更加便捷。所有工具功能都能通过 --help 开关查看。运行:$ pacman -Ql pacman | awk -F"[/ ]" '/\/usr\/bin/ {print $5}'参见:https://wiki.archlinux.org/index.php/Pacman_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)