红联Linux门户
Linux帮助

Arch Linux的软件包管理器pacman

发布时间:2007-09-03 16:46:46来源:红联作者:augset
pacman 是一个追踪着系统上所有已安装软件的包管理器。它有着简单的依赖支持,对所有的软件包都使用标准的 tar-gz 存档格式。一些普通作业各自的命令在下面会有相应的解说。如需得到 pacman 最新的选项解释,查阅 man pacman。这部分纵览仅仅是让你初步了解一下pacman当前的能力。

典型作业:

使用包文件加入一个新的软件包
使用包文件升级一个软件包
卸载软件包
更新软件包列表
升级系统
从软件库加入/升级一个软件包
列出已安装的软件包
查看指定软件包是否已安装
显示指定软件包的信息
显示软件包所包含的文件列表
查找指定文件所属的软件包

使用包文件加入一个新的软件包

# pacman --add foo.pkg.tar.gz
# pacman -A foo.pkg.tar.gz

这将会在系统上安装 foo.pkg.tar.gz 软件包。如果不能满足依赖关系,pacman 会退出并显示错误和报告所缺少的依赖关系,但不会尝试自动解决依赖关系,如果你需要这功能,看看 --sync 选项。

使用包文件升级一个软件包

# pacman --upgrade foo.pkg.tar.gz
# pacman -U foo.pkg.tar.gz

本质上这和 --add 是一样的,但它会还有升级已安装的软件包而不需要额外的开销。我个人很难想像你会宁愿用 --add 而不是 --upgrade。

卸载软件包

# pacman --remove foo
# pacman -R foo

这会卸载属于 foo 的所有文件,已编辑过的配置文件除外。只需提供包名就可以了,无需使用 tar.gz 的后缀。

如果需要完全卸载一个软件包,在上面的命令里加入 --nosave 选项就可以了。

更新软件包列表

# pacman --sync --refresh
# pacman -Sy

这将会从 /etc/pacman.conf 内定义的软件库中取得新的主软件包列表以及将它解压添加至数据库域。在使用 --sysupgrade 之前你应该使用它来确保你得到的都是最新的软件包。取决于你 pacman.conf 的设定,这个命令可能需要一个可用的因特网链接来接入基于 FTP 的软件库。它和 Debian 的 apt-get update 命令很相似。

升级系统

# pacman --sync --sysupgrade
# pacman -Su

这个命令会将本地的软件包版本与通过 --refresh 下载的主软件包列表内的版本对比,然后升级系统内所有过时的软件包。偶而运行这个命令可以让你的系统保持在最新的状态。注意:这个命令并不会更新主软件包列表,所以通常较为聪明的做法是把它们联合在一起:

# pacman --sync --refresh --sysupgrade
# pacman -Syu

通过这些选项,pacman 将自动取得当前的主软件包列表和进行全面的系统升级,所有的依赖关系将会被自动解决。你将想要经常的运行这个。

从软件库加入/升级一个软件包

# pacman --sync foo
# pacman -S foo

取得以及安装 foo 并满足它所有的依赖关系。在使用 sync 选项前,确认你已经更新了软件包列表,又或是在安装前加入了 --refresh 或 -y 的选项。不同于 --add,--sync 的安装和升级并没有不同。取决于你 pacman.conf 的设定,这个功能需要可用的因特网链接。

列出已安装的软件包

# pacman --query
# pacman -Q

显示系统内所有已安装软件包的列表。

查看指定软件包是否已安装

# pacman --query foo
# pacman -Q foo

你可以输入需要查找的名称而不是完整的软件名。如果 foo 已安装,那这个命令将会显示它的名称以及版本

显示指定软件包的信息

# pacman --query --info foo
# pacman -Qi foo

显示已安装软件包 foo 的信息(大小、安装日期、创建日期、依赖关系、冲突等)。显示一个未安装的软件包的信息,可以加入 --file 或是 -p 选项,分别是:

# pacman --query --info --file foo.pkg.tar.gz
# pacman -Qip foo.pkg.tar.gz

显示软件包所包含的文件列表

# pacman --query --list foo
# pacman -Ql foo

列出属于 foo 软件包的所有文件。

查找指定文件所属的软件包

# pacman --query --owns /path/to/file
# pacman -Qo /path/to/file

显示文件通过完整路径作为参数所引用的软件包名称和版本

使用软件库

软件库是软件包及其信息的合集,它可以位于本地目录或是远端的 FTP/HTTP 服务器。Arch 系统默认的软件库是 current,它保持着大部分软件的最新版本。

许多用户选择激活 extra 软件库(包含着更多软件,不属于 Arch 核心软件集部分)。你可以在 /etc/pacman.conf 将它激活(在 uncommenting 的部分),默认是激活的。

你也可以创建、维护以及使用你自己的软件库,具体查阅 pacman manpage。

如果你从光盘安装后又不可以访问因特网,额外的软件包可能就需要从光盘上安装了。你可以在光盘上找出它们然后使用 pacman -A packagename.pkg.tar.gz 进行安装,也可以暂时设置一个访问光盘的软件库。使用 mount /mnt/cd 命令将光盘挂载至 /mnt/cd(假设你的 fstab 已经正确的设置),然后在你的 /etc/pacman.conf 内加入下列:

[cd]
Server = file:///mnt/cd/arch/pkg

然后你将可以安装额外的软件包来帮助你设置因特网链接。
文章评论

共有 0 条评论