doc: update docs/pacman.md (#357)
This commit is contained in:
		
							
								
								
									
										200
									
								
								docs/pacman.md
									
									
									
									
									
								
							
							
						
						
									
										200
									
								
								docs/pacman.md
									
									
									
									
									
								
							@@ -1,16 +1,17 @@
 | 
				
			|||||||
PACMAN 备忘清单
 | 
					Pacman 备忘清单
 | 
				
			||||||
===
 | 
					===
 | 
				
			||||||
 | 
					
 | 
				
			||||||
这个 PACMAN 快速参考备忘单显示了它的常用命令使用清单。
 | 
					这个是 Arch Linux 软件包管理器 Pacman 快速参考备忘单显示了它的常用命令使用清单。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PACMAN 清单查询
 | 
					PACMAN 清单查询
 | 
				
			||||||
---
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 介绍
 | 
					### 介绍
 | 
				
			||||||
<!--rehype:wrap-class=row-span-2-->
 | 
					<!--rehype:wrap-class=row-span-2-->
 | 
				
			||||||
Pacman软件包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman的目标是简化对软件包的管理,无论软件包是来自官方软件仓库还是用户自己创建的软件包。
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Pacman 通过和主服务器同步软件包列表来保持系统是最新的。这种服务器/客户端模式可使得用户使用简单的命令,就能下载或安装软件包,并包含其所有必需的依赖包。
 | 
					Pacman 是 Arch Linux 软件包管理器。帮助您在 Arch Linux 上使用 Pacman 软件包管理器进行软件包的安装、升级、搜索和删除等操作
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
命令语法格式
 | 
					命令语法格式
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,13 +39,16 @@ $ pacman
 | 
				
			|||||||
$ man pacman
 | 
					$ man pacman
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
----
 | 
					请注意,使用 Pacman 命令时,需要管理员权限 `sudo`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					
 | 
				
			||||||
相关参考文献
 | 
					相关参考文献
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [Archlinux Wiki 官方文档](https://wiki.archlinuxcn.org/wiki/Pacman)
 | 
					- [Archlinux Wiki 官方文档](https://wiki.archlinuxcn.org/wiki/Pacman)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 示例
 | 
					### 示例
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-2-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Option | Function
 | 
					Option | Function
 | 
				
			||||||
:-- | --
 | 
					:-- | --
 | 
				
			||||||
@@ -57,7 +61,13 @@ Option | Function
 | 
				
			|||||||
`pacman -F, --files` | 查询文件数据库。
 | 
					`pacman -F, --files` | 查询文件数据库。
 | 
				
			||||||
`pacman -V, --version` | 显示版本
 | 
					`pacman -V, --version` | 显示版本
 | 
				
			||||||
`pacman -h, --help` | 显示帮助信息
 | 
					`pacman -h, --help` | 显示帮助信息
 | 
				
			||||||
<!--rehype:className=code-nowrap-->
 | 
					<!--rehype:className=style-list-arrow-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					升级所有已安装的软件包
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ sudo pacman -Syu
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 安装
 | 
					### 安装
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -91,22 +101,6 @@ $ pacman -S plasma-{desktop,mediacenter,nm}
 | 
				
			|||||||
$ pacman -S plasma-{workspace{,-wallpapers},pa}
 | 
					$ pacman -S plasma-{workspace{,-wallpapers},pa}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 清理软件包缓存
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -Sc
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
要删除缓存中的全部文件
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -Scc
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 安装包组
 | 
					### 安装包组
 | 
				
			||||||
 | 
					
 | 
				
			||||||
一些包属于一个可以同时安装的软件包组
 | 
					一些包属于一个可以同时安装的软件包组
 | 
				
			||||||
@@ -121,70 +115,8 @@ $ pacman -S gnome
 | 
				
			|||||||
$ pacman -Sg gnome
 | 
					$ pacman -Sg gnome
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 删除软件包
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
删除单个软件包,保留其全部已经安装的依赖关系
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -R package_name
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
 | 
					 | 
				
			||||||
$ pacman -Rs package_name
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!--rehype:className=wrap-text -->
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
要删除软件包和所有依赖这个软件包的程序:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
 | 
					 | 
				
			||||||
$ pacman -Rsc package_name
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
 | 
					 | 
				
			||||||
$ pacman -Rdd package_name
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 其它命令
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
升级系统时安装其他软件包:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -Syu package_name1 package_name2 ...
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
下载包而不安装它:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -Sw package_name
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
安装一个本地包(不从源里下载)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -U /path/to/package/package_name-version.pkg.tar.zst
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
要将本地包保存至缓存
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
安装一个远程包(不在 pacman 配置的源里面):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
$ pacman -U http://www.example.com/repo/example.pkg.tar.zst
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 查询包数据库
 | 
					### 查询包数据库
 | 
				
			||||||
 | 
					<!--rehype:wrap-class=row-span-3-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
 | 
					pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -272,6 +204,22 @@ $ pacman -Qdt
 | 
				
			|||||||
$ pacman -Qet
 | 
					$ pacman -Qet
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 清理软件包缓存
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -Sc
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					要删除缓存中的全部文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -Scc
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### Pactree
 | 
					#### Pactree
 | 
				
			||||||
 | 
					
 | 
				
			||||||
> 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
 | 
					> 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
 | 
				
			||||||
@@ -281,3 +229,85 @@ $ pacman -Qet
 | 
				
			|||||||
```bash
 | 
					```bash
 | 
				
			||||||
$ pactree package_name
 | 
					$ pactree package_name
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 删除软件包
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					删除单个软件包,保留其全部已经安装的依赖关系
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -R package_name
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
 | 
				
			||||||
 | 
					$ pacman -Rs package_name
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!--rehype:className=wrap-text -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					要删除软件包和所有依赖这个软件包的程序:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
 | 
				
			||||||
 | 
					$ pacman -Rsc package_name
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
 | 
				
			||||||
 | 
					$ pacman -Rdd package_name
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 查询一个包含具体文件的包名
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					同步文件数据库:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -Fy
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					查询包含某个文件的包名,比如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -F pacman
 | 
				
			||||||
 | 
					core/pacman 5.0.1-4
 | 
				
			||||||
 | 
					    usr/bin/pacman
 | 
				
			||||||
 | 
					    usr/share/bash-completion/completions/pacman
 | 
				
			||||||
 | 
					extra/xscreensaver 5.36-1
 | 
				
			||||||
 | 
					    usr/lib/xscreensaver/pacman
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 其它命令
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					升级系统时安装其他软件包:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -Syu package_name1 package_name2 ...
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					下载包而不安装它:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -Sw package_name
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					安装一个本地包(不从源里下载)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -U /path/to/package/package_name-version.pkg.tar.zst
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					要将本地包保存至缓存
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					安装一个远程包(不在 pacman 配置的源里面):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ pacman -U http://www.example.com/repo/example.pkg.tar.zst
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user