Pacman

Pacman 是 Archlinux 默认的包管理工具,由 Archlinux 的创始人 Judd Vinet 开发。Pacman 可以很好的处理依赖关系、通过网络使用软件仓库。使用 Pacman,你不仅可以更新 Archlinux 的整个系统,而且能够对包进行管理,包括安装、删除、升级等。同时,Pacman 也允许你搜索包和查看有关包的信息。

配置

Pacman 的配置文件为 /etc/pacman.conf,可以在其中设定使用的软件源分支

[core]
# 在这里添加你的首选服务器,它们将被优先使用
Include = /etc/pacman.d/mirrorlist

[extra]
# 在这里添加你的首选服务器,它们将被优先使用
Include = /etc/pacman.d/mirrorlist

[community]
# 在这里添加你的首选服务器,它们将被优先使用
Include = /etc/pacman.d/mirrorlist

#[testing]
#Include = /etc/pacman.d/mirrorlist

# 自定义软件仓库的示例
#[custom]
#Server = file:///home/custompkgs  

# archlinuxfr 软件仓库    
[archlinuxfr]
Server = http://repo.archlinux.fr/i686    

指定 Pacman 使用的下载工具

# 默认(不指定的情况下)为 wget
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
# 使用 aria2 下载 ,删除下一行行首注释符 #
#XferCommand = aria2c -s 5 -m 5 -d / -o %o %u
# 使用 curl 下载    
#XferCommand = /usr/bin/curl %u > %o    

命令

Pacman 是一个命令行工具,这意味着当你执行下面的命令时,必须在终端或控制台中进行。

更新系统

在 Archlinux 中,使用一条命令即可对整个系统进行更新:

pacman -Syu      

如果你已经使用 pacman -Sy 将本地的包数据库与远程的仓库进行了同步,也可以只执行:

pacman -Su      

安装软件包

这个命令你应该见过无数次了:

pacman -S 软件包名称      
  • 如果同时安装多个包,用空格分隔包名

其它用法:

# 先同步包数据库再安装
pacman -Sy 软件包名称
# 显示一些操作信息后执行安装      
pacman -Sv 软件包名称
# 安装本地软件包,其扩展名为 pkg.tar.gz
pacman -U 软件包名称

删除软件包

# 只删除软件包,不删除该软件包的依赖
pacman -R 软件包名称
# 删除软件包的同时,也将删除其依赖
pacman -Rs 软件包名称
# 删除软件包、依赖关系、配置文件
pacman -Rsn 软件包名称	
# 删除包时不检查依赖
pacman -Rd 软件包名称           

搜索

通过关键字搜索软件包

pacman -Ss 关键字      

搜索已安装的包

# 查看软件包信息
pacman -Qi 软件包名称      
# 列出软件包的文件
pacman -Ql 软件包名称 
# 查看某一文件属于哪个软件包
pacman -Qo 文件名      

假如想知道某一程序的相关信息,可以配合 whereis 使用 pacman

  whereis sudo      
sudo: /usr/bin/sudo /usr/share/man/man8/sudo.8.gz

  pacman -Qo /usr/bin/sudo      
/usr/bin/sudo is owned by sudo 1.6.9p18-1

  pacman -Qi sudo      
Name           : sudo
Version        : 1.6.9p18-1
URL            : http://www.sudo.ws/sudo/
Licenses       : custom  ISC
Groups         : None
Provides       : None
Depends On     : glibc  pam
Optional Deps  : None
Required By    : None
Conflicts With : None
Replaces       : None
Installed Size : 308.00 K
Packager       : Allan McRae <allan@archlinux.org>
Architecture   : i686
Build Date     : Sat 15 Nov 2008 06:17:33 AM CST
Install Date   : Fri 21 Nov 2008 12:20:07 PM CST
Install Reason : Explicitly installed
Install Script : No
Description    : Give certain users the ability to run some commands as root
      
  pacman -Ql sudo      
sudo /etc/
sudo /etc/pam.d/
sudo /etc/pam.d/sudo
sudo /etc/sudoers
sudo /usr/
sudo /usr/bin/
sudo /usr/bin/sudo
sudo /usr/bin/sudoedit
sudo /usr/lib/
sudo /usr/lib/sudo_noexec.so
sudo /usr/sbin/
sudo /usr/sbin/visudo
sudo /usr/share/
sudo /usr/share/licenses/
sudo /usr/share/licenses/sudo/
sudo /usr/share/licenses/sudo/LICENSE
sudo /usr/share/man/
sudo /usr/share/man/man5/
sudo /usr/share/man/man5/sudoers.5.gz
sudo /usr/share/man/man8/
sudo /usr/share/man/man8/sudo.8.gz
sudo /usr/share/man/man8/sudoedit.8.gz
sudo /usr/share/man/man8/visudo.8.gz      

其他

# 只下载软件包,不安装
pacman -Sw 软件包名称
# Pacman 下载的软件包缓存于 /var/cache/pacman/pkg/ 目录。清理未安装的包
pacman -Sc
# 清理所有缓存的文件
pacman -Scc
# 搜索孤立软件包
pacman -Qdt