1
- PACMAN 备忘清单
1
+ Pacman 备忘清单
2
2
===
3
3
4
- 这个 PACMAN 快速参考备忘单显示了它的常用命令使用清单。
4
+ 这个是 Arch Linux 软件包管理器 Pacman 快速参考备忘单显示了它的常用命令使用清单。
5
5
6
6
PACMAN 清单查询
7
7
---
8
8
9
9
### 介绍
10
10
<!-- rehype:wrap-class=row-span-2-->
11
- Pacman软件包管理器是 Arch Linux 的一大亮点。它将一个简单的二进制包格式和易用的构建系统结合了起来。Pacman的目标是简化对软件包的管理,无论软件包是来自官方软件仓库还是用户自己创建的软件包。
12
11
13
- Pacman 通过和主服务器同步软件包列表来保持系统是最新的。这种服务器/客户端模式可使得用户使用简单的命令,就能下载或安装软件包,并包含其所有必需的依赖包。
12
+ Pacman 是 Arch Linux 软件包管理器。帮助您在 Arch Linux 上使用 Pacman 软件包管理器进行软件包的安装、升级、搜索和删除等操作
13
+
14
+ ---
14
15
15
16
命令语法格式
16
17
@@ -38,13 +39,16 @@ $ pacman
38
39
$ man pacman
39
40
```
40
41
41
- ----
42
+ 请注意,使用 Pacman 命令时,需要管理员权限 ` sudo `
43
+
44
+ ---
42
45
43
46
相关参考文献
44
47
45
48
- [ Archlinux Wiki 官方文档] ( https://wiki.archlinuxcn.org/wiki/Pacman )
46
49
47
50
### 示例
51
+ <!-- rehype:wrap-class=row-span-2-->
48
52
49
53
Option | Function
50
54
:-- | --
@@ -57,7 +61,13 @@ Option | Function
57
61
` pacman -F, --files ` | 查询文件数据库。
58
62
` pacman -V, --version ` | 显示版本
59
63
` pacman -h, --help ` | 显示帮助信息
60
- <!-- rehype:className=code-nowrap-->
64
+ <!-- rehype:className=style-list-arrow-->
65
+
66
+ 升级所有已安装的软件包
67
+
68
+ ``` bash
69
+ $ sudo pacman -Syu
70
+ ```
61
71
62
72
### 安装
63
73
@@ -91,193 +101,213 @@ $ pacman -S plasma-{desktop,mediacenter,nm}
91
101
$ pacman -S plasma-{workspace{,-wallpapers},pa}
92
102
```
93
103
94
- ### 清理软件包缓存
95
-
96
- pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
104
+ ### 安装包组
97
105
98
- 要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
106
+ 一些包属于一个可以同时安装的软件包组
99
107
100
108
``` bash
101
- $ pacman -Sc
109
+ $ pacman -S gnome
102
110
```
103
111
104
- 要删除缓存中的全部文件
112
+ 想要查看哪些包属于 gnome 组
105
113
106
114
``` bash
107
- $ pacman -Scc
115
+ $ pacman -Sg gnome
108
116
```
109
117
110
- ### 安装包组
118
+ ### 查询包数据库
119
+ <!-- rehype:wrap-class=row-span-3-->
111
120
112
- 一些包属于一个可以同时安装的软件包组
121
+ pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
122
+
123
+ pacman 可以在包数据库中查询软件包,查询位置包含了软件包的名字和描述
113
124
114
125
``` bash
115
- $ pacman -S gnome
126
+ $ pacman -Ss string1 string2 ...
116
127
```
117
128
118
- 想要查看哪些包属于 gnome 组
129
+ 使用正则
119
130
120
131
``` bash
121
- $ pacman -Sg gnome
132
+ $ pacman -Ss ' ^vim- '
122
133
```
123
134
124
- ### 删除软件包
125
-
126
- 删除单个软件包,保留其全部已经安装的依赖关系
135
+ 要查询已安装的软件包:
127
136
128
137
``` bash
129
- $ pacman -R package_name
138
+ $ pacman -Qs string1 string2 ...
130
139
```
131
140
132
- 删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系 :
141
+ 按文件名查找软件库 :
133
142
134
143
``` bash
135
- # ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
136
- $ pacman -Rs package_name
144
+ $ pacman -F string1 string2 ...
137
145
```
138
146
139
- <!-- rehype:className=wrap-text -->
140
-
141
- 要删除软件包和所有依赖这个软件包的程序:
147
+ 显示软件包的详尽的信息:
142
148
143
149
``` bash
144
- # ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
145
- $ pacman -Rsc package_name
150
+ $ pacman -Si package_name
146
151
```
147
152
148
- 要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
153
+ 查询本地安装包的详细信息:
149
154
150
155
``` bash
151
- # ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
152
- $ pacman -Rdd package_name
156
+ $ pacman -Qi package_name
153
157
```
154
158
155
- ### 其它命令
156
-
157
- 升级系统时安装其他软件包:
159
+ 同时显示备份文件和修改状态:
158
160
159
161
``` bash
160
- $ pacman -Syu package_name1 package_name2 ...
162
+ $ pacman -Qii package_name
161
163
```
162
164
163
- 下载包而不安装它 :
165
+ 要获取已安装软件包所包含文件的列表 :
164
166
165
167
``` bash
166
- $ pacman -Sw package_name
168
+ $ pacman -Ql package_name
167
169
```
168
170
169
- 安装一个本地包(不从源里下载)
171
+ 查询远程库中软件包包含的文件:
170
172
171
173
``` bash
172
- $ pacman -U /path/to/package/ package_name-version.pkg.tar.zst
174
+ $ pacman -Fl package_name
173
175
```
174
176
175
- 要将本地包保存至缓存
177
+ 查软件包安装的文件是否都存在:
176
178
177
179
``` bash
178
- $ pacman -U file:///path/to/package/ package_name-version.pkg.tar.zst
180
+ $ pacman -Qk package_name
179
181
```
180
182
181
- 安装一个远程包(不在 pacman 配置的源里面):
183
+ 查询数据库获取某个文件属于哪个软件包
182
184
183
185
``` bash
184
- $ pacman -U http://www.example.com/repo/example.pkg.tar.zst
186
+ $ pacman -Qo /path/to/file_name
185
187
```
186
188
187
- ### 查询包数据库
189
+ 查询文件属于远程数据库中的哪个软件包:
188
190
189
- pacman 使用 -Q 参数查询本地软件包数据库, -S 查询同步数据库,以及 -F查询文件数据库
191
+ ``` bash
192
+ $ pacman -F /path/to/file_name
193
+ ```
190
194
191
- pacman 可以在包数据库中查询软件包,查询位置包含了软件包的名字和描述
195
+ 查询所有不再作为依赖的软件包(孤立orphans):
192
196
193
197
``` bash
194
- $ pacman -Ss string1 string2 ...
198
+ $ pacman -Qdt
195
199
```
196
200
197
- 使用正则
201
+ 查询所有明确安装而且不被其它包依赖的软件包:
198
202
199
203
``` bash
200
- $ pacman -Ss ' ^vim- '
204
+ $ pacman -Qet
201
205
```
202
206
203
- 要查询已安装的软件包:
207
+ ### 清理软件包缓存
208
+
209
+ pacman 将下载的软件包保存在 /var/cache/pacman/pkg/ 并且不会自动移除旧的和未安装版本的软件包
210
+
211
+ 要删除目前没有安装的所有缓存的包,和没有被使用的同步数据库
204
212
205
213
``` bash
206
- $ pacman -Qs string1 string2 ...
214
+ $ pacman -Sc
207
215
```
208
216
209
- 按文件名查找软件库:
217
+ 要删除缓存中的全部文件
210
218
211
219
``` bash
212
- $ pacman -F string1 string2 ...
220
+ $ pacman -Scc
213
221
```
214
222
215
- 显示软件包的详尽的信息:
223
+ #### Pactree
224
+
225
+ > 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
226
+
227
+ 要显示软件包的依赖树:
216
228
217
229
``` bash
218
- $ pacman -Si package_name
230
+ $ pactree package_name
219
231
```
220
232
221
- 查询本地安装包的详细信息:
233
+ ### 删除软件包
234
+
235
+ 删除单个软件包,保留其全部已经安装的依赖关系
222
236
223
237
``` bash
224
- $ pacman -Qi package_name
238
+ $ pacman -R package_name
225
239
```
226
240
227
- 同时显示备份文件和修改状态 :
241
+ 删除指定软件包,及其所有没有被其他已安装软件包使用的依赖关系 :
228
242
229
243
``` bash
230
- $ pacman -Qii package_name
244
+ # ⚠️删除类似 gnome 这样的软件包组时,将会忽略组中软件包的安装原因,因为实际操作上执行的是逐一删除软件组的每一个软件,依赖软件包的安装原因不会被忽略。
245
+ $ pacman -Rs package_name
231
246
```
232
247
233
- 要获取已安装软件包所包含文件的列表:
248
+ <!-- rehype:className=wrap-text -->
249
+
250
+ 要删除软件包和所有依赖这个软件包的程序:
234
251
235
252
``` bash
236
- $ pacman -Ql package_name
253
+ # ⚠️此操作是递归的,请小心检查,可能会一次删除大量的软件包。
254
+ $ pacman -Rsc package_name
237
255
```
238
256
239
- 查询远程库中软件包包含的文件:
257
+ 要删除一个被其他软件包依赖的软件包,但是不删除依赖这个软件包的其他软件包
240
258
241
259
``` bash
242
- $ pacman -Fl package_name
260
+ # ⚠️ 此操作有破坏系统的能力,应该尽量避免使用
261
+ $ pacman -Rdd package_name
243
262
```
244
263
245
- 查软件包安装的文件是否都存在:
264
+ ### 查询一个包含具体文件的包名
265
+
266
+ 同步文件数据库:
246
267
247
268
``` bash
248
- $ pacman -Qk package_name
269
+ $ pacman -Fy
249
270
```
250
271
251
- 查询数据库获取某个文件属于哪个软件包
272
+ 查询包含某个文件的包名,比如:
252
273
253
274
``` 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
255
281
```
256
282
257
- 查询文件属于远程数据库中的哪个软件包:
283
+ ### 其它命令
284
+
285
+ 升级系统时安装其他软件包:
258
286
259
287
``` bash
260
- $ pacman -F /path/to/file_name
288
+ $ pacman -Syu package_name1 package_name2 ...
261
289
```
262
290
263
- 查询所有不再作为依赖的软件包(孤立orphans) :
291
+ 下载包而不安装它 :
264
292
265
293
``` bash
266
- $ pacman -Qdt
294
+ $ pacman -Sw package_name
267
295
```
268
296
269
- 查询所有明确安装而且不被其它包依赖的软件包:
297
+ 安装一个本地包(不从源里下载)
270
298
271
299
``` bash
272
- $ pacman -Qet
300
+ $ pacman -U /path/to/package/package_name-version.pkg.tar.zst
273
301
```
274
302
275
- #### Pactree
303
+ 要将本地包保存至缓存
276
304
277
- > 注意: pactree 不再是pacman包的一部分。它现在在pacman-contrib包中。
305
+ ``` bash
306
+ $ pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
307
+ ```
278
308
279
- 要显示软件包的依赖树 :
309
+ 安装一个远程包(不在 pacman 配置的源里面) :
280
310
281
311
``` bash
282
- $ pactree package_name
312
+ $ pacman -U http://www.example.com/repo/example.pkg.tar.zst
283
313
```
0 commit comments