文章目录
  1. 1. Install packages
  2. 2. Remove packages
  3. 3. Upgading packages
  4. 4. Query package databases
  5. 5. Database structure
  6. 6. Cleaning the package chache
  7. 7. Additional commands

pacman是arch linux的软件包管理器
pacman使用的package格式为*.pkg.tar.gz

Install packages

安装指定的package
pacman -S package_name1 package_name2 ...

安装package group
有的软件属于一个组,可以被同时安装, 例如下面这条命令:
pacman -S gnome 将会提示你从gnome group里面选择安装哪些软件.
提示信息如下:
Enter a selection (default=all): 1-10 15
1-10 15表示选择第1到10个package和第15个package
如果想排除某几个安装包,可以按如下的方式操作:
Enter a selection (default=all): ^5-8 ^2
表示排除第5到第8个和排除第2个.

查看某个package group中包含那些软件包
pacman -Sg gnome
查看gnome这个group里面包含了哪些软件包.

Remove packages

移除某个安装包,但是保留依赖关系
pacman -R package_name

移除某个安装包,并且移除其他以安装软件不需要的依赖
pacman -Rs package_name

Upgading packages

upgrading the system

推荐upgrade 整个系统,而不是upgrade部分软件.
为了避免partial upgrades, 不要使用pacman -Sy这个命令
你应该总是使用pacman -Syu
尽量避免使用—force选项,因为这个选项会忽略冲突

partial upgrades are unsupported
由于arch linux是滚动发行(rolling release)的,也就是说
当有新的库推送到仓库的时候,developers 和 trusted users将会
重新构建所有依赖这个库的软件包.
例如有两个软件包都依赖同一个库,如果只更新了其中一个软件,也会导致
库被更新,也就是说会导致另外一个软件broken.

Query package databases

在数据库中搜索package
pacman -Ss string1 string2 ...

搜索已经安装的package
pacman -Qs string1 string2 ...

查看更多关于指定package的信息
pacman -Si package_name

查看本地安装包的详细信息
pacman -Qi package_name

查看本地已安装package安装的文件列表
pacman -Ql package_name

查看某个文件或者文件夹属于哪个package
pacman -Qo /path/to/file_name
例如:

1
2
$ pacman -Qo /etc/X11/xorg.conf.d/
/etc/X11/xorg.conf.d/ is owned by xorg-server 1.19.3-2

查看某个package的依赖关系树
pactree package_name

Database structure

对于每一个在/etc/pacman.conf设置的repository,在/val/lib/pacman/sync中
都有一个对应的database
如:

1
2
/var/lib/pacman/sync]$ ls
community.db core.db extra.db

database是gzip格式的压缩包,解压后可以看到很多以package命名的目录
例如:

1
2
3
$ tree openssl-1.1.0.e-1/
openssl-1.1.0.e-1/
└── desc

desc文件里面包含package的描述信息,版本号,大小,MD5值,
hash值, licence, 依赖的package.

Cleaning the package chache

pacman 将下载下来的package存储在/var/cache/pacman/pkg
并且不会自动清理旧的安装包
清除缓存的package,并保留当前已安装的packages
pacman -Sc

Additional commands

下载packages但是不安装
pacman -Sw

安装一个本地的package
例: pacman -U /path/to/package/package_name-version.pkg.tar.xz

文章目录
  1. 1. Install packages
  2. 2. Remove packages
  3. 3. Upgading packages
  4. 4. Query package databases
  5. 5. Database structure
  6. 6. Cleaning the package chache
  7. 7. Additional commands