Skip to content

Commit fa15c32

Browse files
committed
doc: update docs/pacman.md (jaywcjlove#357)
1 parent ac217e7 commit fa15c32

File tree

1 file changed

+109
-79
lines changed

1 file changed

+109
-79
lines changed

docs/pacman.md

+109-79
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
1-
PACMAN 备忘清单
1+
Pacman 备忘清单
22
===
33

4-
这个 PACMAN 快速参考备忘单显示了它的常用命令使用清单。
4+
这个是 Arch Linux 软件包管理器 Pacman 快速参考备忘单显示了它的常用命令使用清单。
55

66
PACMAN 清单查询
77
---
88

99
### 介绍
1010
<!--rehype:wrap-class=row-span-2-->
11-
Pacman软件包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman的目标是简化对软件包的管理,无论软件包是来自官方软件仓库还是用户自己创建的软件包。
1211

13-
Pacman 通过和主服务器同步软件包列表来保持系统是最新的。这种服务器/客户端模式可使得用户使用简单的命令,就能下载或安装软件包,并包含其所有必需的依赖包。
12+
Pacman 是 Arch Linux 软件包管理器。帮助您在 Arch Linux 上使用 Pacman 软件包管理器进行软件包的安装、升级、搜索和删除等操作
13+
14+
---
1415

1516
命令语法格式
1617

@@ -38,13 +39,16 @@ $ pacman
3839
$ man pacman
3940
```
4041

41-
----
42+
请注意,使用 Pacman 命令时,需要管理员权限 `sudo`
43+
44+
---
4245

4346
相关参考文献
4447

4548
- [Archlinux Wiki 官方文档](https://wiki.archlinuxcn.org/wiki/Pacman)
4649

4750
### 示例
51+
<!--rehype:wrap-class=row-span-2-->
4852

4953
Option | Function
5054
:-- | --
@@ -57,7 +61,13 @@ Option | Function
5761
`pacman -F, --files` | 查询文件数据库。
5862
`pacman -V, --version` | 显示版本
5963
`pacman -h, --help` | 显示帮助信息
60-
<!--rehype:className=code-nowrap-->
64+
<!--rehype:className=style-list-arrow-->
65+
66+
升级所有已安装的软件包
67+
68+
```bash
69+
$ sudo pacman -Syu
70+
```
6171

6272
### 安装
6373

@@ -91,193 +101,213 @@ $ pacman -S plasma-{desktop,mediacenter,nm}
91101
$ pacman -S plasma-{workspace{,-wallpapers},pa}
92102
```
93103

94-
### 清理软件包缓存
95-
96-
pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
104+
### 安装包组
97105

98-
要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
106+
一些包属于一个可以同时安装的软件包组
99107

100108
```bash
101-
$ pacman -Sc
109+
$ pacman -S gnome
102110
```
103111

104-
要删除缓存中的全部文件
112+
想要查看哪些包属于 gnome 组
105113

106114
```bash
107-
$ pacman -Scc
115+
$ pacman -Sg gnome
108116
```
109117

110-
### 安装包组
118+
### 查询包数据库
119+
<!--rehype:wrap-class=row-span-3-->
111120

112-
一些包属于一个可以同时安装的软件包组
121+
pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
122+
123+
pacman 可以在包数据库中查询软件包,查询位置包含了软件包的名字和描述
113124

114125
```bash
115-
$ pacman -S gnome
126+
$ pacman -Ss string1 string2 ...
116127
```
117128

118-
想要查看哪些包属于 gnome 组
129+
使用正则
119130

120131
```bash
121-
$ pacman -Sg gnome
132+
$ pacman -Ss '^vim-'
122133
```
123134

124-
### 删除软件包
125-
126-
删除单个软件包,保留其全部已经安装的依赖关系
135+
要查询已安装的软件包:
127136

128137
```bash
129-
$ pacman -R package_name
138+
$ pacman -Qs string1 string2 ...
130139
```
131140

132-
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系
141+
按文件名查找软件库
133142

134143
```bash
135-
# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
136-
$ pacman -Rs package_name
144+
$ pacman -F string1 string2 ...
137145
```
138146

139-
<!--rehype:className=wrap-text -->
140-
141-
要删除软件包和所有依赖这个软件包的程序:
147+
显示软件包的详尽的信息:
142148

143149
```bash
144-
# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
145-
$ pacman -Rsc package_name
150+
$ pacman -Si package_name
146151
```
147152

148-
要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
153+
查询本地安装包的详细信息:
149154

150155
```bash
151-
# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
152-
$ pacman -Rdd package_name
156+
$ pacman -Qi package_name
153157
```
154158

155-
### 其它命令
156-
157-
升级系统时安装其他软件包:
159+
同时显示备份文件和修改状态:
158160

159161
```bash
160-
$ pacman -Syu package_name1 package_name2 ...
162+
$ pacman -Qii package_name
161163
```
162164

163-
下载包而不安装它
165+
要获取已安装软件包所包含文件的列表
164166

165167
```bash
166-
$ pacman -Sw package_name
168+
$ pacman -Ql package_name
167169
```
168170

169-
安装一个本地包(不从源里下载)
171+
查询远程库中软件包包含的文件:
170172

171173
```bash
172-
$ pacman -U /path/to/package/package_name-version.pkg.tar.zst
174+
$ pacman -Fl package_name
173175
```
174176

175-
要将本地包保存至缓存
177+
查软件包安装的文件是否都存在:
176178

177179
```bash
178-
$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
180+
$ pacman -Qk package_name
179181
```
180182

181-
安装一个远程包(不在 pacman 配置的源里面):
183+
查询数据库获取某个文件属于哪个软件包
182184

183185
```bash
184-
$ pacman -U http://www.example.com/repo/example.pkg.tar.zst
186+
$ pacman -Qo /path/to/file_name
185187
```
186188

187-
### 查询包数据库
189+
查询文件属于远程数据库中的哪个软件包:
188190

189-
pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
191+
```bash
192+
$ pacman -F /path/to/file_name
193+
```
190194

191-
pacman 可以在包数据库中查询软件包,查询位置包含了软件包的名字和描述
195+
查询所有不再作为依赖的软件包(孤立orphans):
192196

193197
```bash
194-
$ pacman -Ss string1 string2 ...
198+
$ pacman -Qdt
195199
```
196200

197-
使用正则
201+
查询所有明确安装而且不被其它包依赖的软件包:
198202

199203
```bash
200-
$ pacman -Ss '^vim-'
204+
$ pacman -Qet
201205
```
202206

203-
要查询已安装的软件包:
207+
### 清理软件包缓存
208+
209+
pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
210+
211+
要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
204212

205213
```bash
206-
$ pacman -Qs string1 string2 ...
214+
$ pacman -Sc
207215
```
208216

209-
按文件名查找软件库:
217+
要删除缓存中的全部文件
210218

211219
```bash
212-
$ pacman -F string1 string2 ...
220+
$ pacman -Scc
213221
```
214222

215-
显示软件包的详尽的信息:
223+
#### Pactree
224+
225+
> 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
226+
227+
要显示软件包的依赖树:
216228

217229
```bash
218-
$ pacman -Si package_name
230+
$ pactree package_name
219231
```
220232

221-
查询本地安装包的详细信息:
233+
### 删除软件包
234+
235+
删除单个软件包,保留其全部已经安装的依赖关系
222236

223237
```bash
224-
$ pacman -Qi package_name
238+
$ pacman -R package_name
225239
```
226240

227-
同时显示备份文件和修改状态
241+
删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系
228242

229243
```bash
230-
$ pacman -Qii package_name
244+
# ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
245+
$ pacman -Rs package_name
231246
```
232247

233-
要获取已安装软件包所包含文件的列表:
248+
<!--rehype:className=wrap-text -->
249+
250+
要删除软件包和所有依赖这个软件包的程序:
234251

235252
```bash
236-
$ pacman -Ql package_name
253+
# ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
254+
$ pacman -Rsc package_name
237255
```
238256

239-
查询远程库中软件包包含的文件:
257+
要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
240258

241259
```bash
242-
$ pacman -Fl package_name
260+
# ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
261+
$ pacman -Rdd package_name
243262
```
244263

245-
查软件包安装的文件是否都存在:
264+
### 查询一个包含具体文件的包名
265+
266+
同步文件数据库:
246267

247268
```bash
248-
$ pacman -Qk package_name
269+
$ pacman -Fy
249270
```
250271

251-
查询数据库获取某个文件属于哪个软件包
272+
查询包含某个文件的包名,比如:
252273

253274
```bash
254-
$ pacman -Qo /path/to/file_name
275+
$ pacman -F pacman
276+
core/pacman 5.0.1-4
277+
usr/bin/pacman
278+
usr/share/bash-completion/completions/pacman
279+
extra/xscreensaver 5.36-1
280+
usr/lib/xscreensaver/pacman
255281
```
256282

257-
查询文件属于远程数据库中的哪个软件包:
283+
### 其它命令
284+
285+
升级系统时安装其他软件包:
258286

259287
```bash
260-
$ pacman -F /path/to/file_name
288+
$ pacman -Syu package_name1 package_name2 ...
261289
```
262290

263-
查询所有不再作为依赖的软件包(孤立orphans)
291+
下载包而不安装它
264292

265293
```bash
266-
$ pacman -Qdt
294+
$ pacman -Sw package_name
267295
```
268296

269-
查询所有明确安装而且不被其它包依赖的软件包:
297+
安装一个本地包(不从源里下载)
270298

271299
```bash
272-
$ pacman -Qet
300+
$ pacman -U /path/to/package/package_name-version.pkg.tar.zst
273301
```
274302

275-
#### Pactree
303+
要将本地包保存至缓存
276304

277-
> 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
305+
```bash
306+
$ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
307+
```
278308

279-
要显示软件包的依赖树
309+
安装一个远程包(不在 pacman 配置的源里面)
280310

281311
```bash
282-
$ pactree package_name
312+
$ pacman -U http://www.example.com/repo/example.pkg.tar.zst
283313
```

0 commit comments

Comments
 (0)