Skip to content

Commit a49ddb3

Browse files
committed
ops/package: Reformat
1 parent ed61aed commit a49ddb3

1 file changed

Lines changed: 59 additions & 51 deletions

File tree

docs/ops/package.md

Lines changed: 59 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -24,98 +24,106 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
2424

2525
### 常用操作
2626

27-
1. 安装软件包
27+
#### 安装软件包
2828

29-
如果我们需要安装一个名称为 name 的包
29+
如果我们需要安装一个名称为 name 的包
3030

31-
在手动下载 .deb 包后,使用 dpkg 直接安装 .deb 包:
31+
在手动下载 .deb 包后,使用 dpkg 直接安装 .deb 包:
3232

33-
`dpkg -i <name_version.deb>`
33+
```shell
34+
dpkg -i <name_version.deb>
35+
```
3436

35-
使用 apt 安装软件包:
37+
使用 apt 安装软件包:
3638

37-
`apt install <name>`
39+
```shell
40+
apt install <name>
41+
```
3842

39-
如果 name 有未在系统上安装的依赖的话,那么第一个命令会失败(除非使用 `--force** 选项),第二个命令会下载对应的安装包及其依赖,并且进行安装。
43+
如果 name 有未在系统上安装的依赖的话,那么第一个命令会失败(除非使用 `--force** 选项),第二个命令会下载对应的安装包及其依赖,并且进行安装。
4044

41-
2. 卸载软件包
45+
#### 卸载软件包
4246

43-
使用 dpkg 直接卸载:
47+
使用 dpkg 直接卸载:
4448

45-
`dpkg -r <name>`
49+
```shell
50+
dpkg -r <name>
51+
```
4652

47-
使用 apt 卸载:
53+
使用 apt 卸载:
4854

49-
`apt remove name`
55+
```shell
56+
apt remove name
57+
```
5058

51-
那么现在产生了一个问题:要是我安装了一个有很多依赖的包,那么我们卸载它时依赖不会同时被卸载。这样依赖会一直占据我们电脑里面的空间。而手动卸载依赖并不直观,还可能破坏其他包的依赖。
59+
那么现在产生了一个问题:要是我安装了一个有很多依赖的包,那么我们卸载它时依赖不会同时被卸载。这样依赖会一直占据我们电脑里面的空间。而手动卸载依赖并不直观,还可能破坏其他包的依赖。
5260

53-
因此,在使用 APT 安装一个包时,我们将其标记为 manual,在安装依赖时,我们将其标记为 automatic,
54-
那么我们知道**所有没有被 manual 直接或者间接依赖的 automatic 包**都是不必要的。
61+
因此,在使用 APT 安装一个包时,我们将其标记为 manual,在安装依赖时,我们将其标记为 automatic,
62+
那么我们知道**所有没有被 manual 直接或者间接依赖的 automatic 包**都是不必要的。
5563

56-
这样,我们可以使用`apt autoremove`来卸载不必要的包以释放存储空间。
64+
这样,我们可以使用`apt autoremove`来卸载不必要的包以释放存储空间。
5765

58-
3. 推荐与建议
66+
#### 推荐与建议
5967

60-
安装软件包时,APT 在默认配置下会安装推荐(Recommended)的包。还会提示你可以安装建议(Suggested)的包以拓展原包的功能。
68+
安装软件包时,APT 在默认配置下会安装推荐(Recommended)的包。还会提示你可以安装建议(Suggested)的包以拓展原包的功能。
6169

62-
比如:apt 包的推荐有 ca-certificates,建议包有 aptitude、synaptic、gnupg、powermgmt-base 和 dpkg-dev
70+
比如:apt 包的推荐有 ca-certificates,建议包有 aptitude、synaptic、gnupg、powermgmt-base 和 dpkg-dev
6371

64-
那么安装这个包时,会默认安装 ca-certificates,结束后会给出后面的包的提示。
72+
那么安装这个包时,会默认安装 ca-certificates,结束后会给出后面的包的提示。
6573

66-
为了精简安装的软件包,可以使用 `--no-install-recommends` 的选项,以跳过推荐的软件包。
74+
为了精简安装的软件包,可以使用 `--no-install-recommends` 的选项,以跳过推荐的软件包。
6775

68-
还可以在配置文件中添加 `Apt::Install-Recommends "false"` 以使默认配置不会安装推荐的包。
76+
还可以在配置文件中添加 `Apt::Install-Recommends "false"` 以使默认配置不会安装推荐的包。
6977

70-
当这类包被安装的时候,它们的类型为 automatic,也就是说在默认情况下,
71-
如果没有软件**推荐或者建议它们**,它们会被 `apt autoremove` 卸载。
78+
当这类包被安装的时候,它们的类型为 automatic,也就是说在默认情况下,
79+
如果没有软件**推荐或者建议它们**,它们会被 `apt autoremove` 卸载。
7280

73-
使用 `apt-mark (automatic|manual) <name>` 修改包的状态。
81+
使用 `apt-mark (automatic|manual) <name>` 修改包的状态。
7482

75-
4. 查找包中文件与文件所属的包,替换 command not found
83+
#### 查找包中文件与文件所属的包
7684

77-
APT 家族中存在一个用于查找文件所属包的工具 `apt-file`
85+
APT 家族中存在一个用于查找文件所属包的工具 `apt-file`
7886

79-
使用 `apt-file update` 进行数据库的初始化及更新。
87+
使用 `apt-file update` 进行数据库的初始化及更新。
8088

81-
使用 `apt-file search <file>` 进行搜索。
89+
使用 `apt-file search <file>` 进行搜索。
8290

83-
可以使用 `dpkg -S <file>` 搜索所有**已安装**包中的文件。
91+
可以使用 `dpkg -S <file>` 搜索所有**已安装**包中的文件。
8492

85-
反过来,想要查看一个包包含什么文件,可以使用 `apt-file list <name>`
93+
反过来,想要查看一个包包含什么文件,可以使用 `apt-file list <name>`
8694

87-
使用 `dpkg-deb -c <name_version.deb>` 查看 .deb 中内容。
95+
使用 `dpkg-deb -c <name_version.deb>` 查看 .deb 中内容。
8896

89-
也可以使用 `dpkg-query -L <name>` ,但是这只对已经安装的包生效。
97+
也可以使用 `dpkg-query -L <name>` ,但是这只对已经安装的包生效。
9098

91-
在使用了一个未安装的命令时,可以选择使用 `command-not-found`
99+
在使用了一个未安装的命令时,可以选择使用 `command-not-found`
92100

93-
其安装方式十分简单,只需 `apt install command-not-found` 即可。
101+
其安装方式十分简单,只需 `apt install command-not-found` 即可。
94102

95-
5. 查找包
103+
#### 查找包
96104

97-
`apt search <name>` 可以进行包的查找。
105+
`apt search <name>` 可以进行包的查找。
98106

99-
也可以通过使用一种特殊的语法(apt-patterns)来进行更具体的查找。
107+
也可以通过使用一种特殊的语法(apt-patterns)来进行更具体的查找。
100108

101-
比如你想寻找已经安装,并且名称包含 gcc 的软件,可以使用 `~i ~ngcc`
102-
如果要求名称完全匹配,可以使用 `~i ?exact-name(gcc)`
109+
比如你想寻找已经安装,并且名称包含 gcc 的软件,可以使用 `~i ~ngcc`
110+
如果要求名称完全匹配,可以使用 `~i ?exact-name(gcc)`
103111

104-
以下是一些常见的 apt-patterns 单位
112+
以下是一些常见的 apt-patterns 单位
105113

106-
- `?and()` 也可以使用空格分隔若干个 apt-patterns 简写。
107-
- `?or()` 也可以使用 `|` 分隔若干个 apt-patterns 简写。
108-
- `?not()` 可以使用 `!` 进行简写。
109-
- `~g` 为需要被 autoremove 的已安装包。在进行 autoremove 之前建议进行一次检查。
110-
- `~i` 为已经安装的包。
111-
- `~U` 可以升级的包。
112-
- `~nREGEX` 包名称满足正则表达式的包。
114+
- `?and()` 也可以使用空格分隔若干个 apt-patterns 简写。
115+
- `?or()` 也可以使用 `|` 分隔若干个 apt-patterns 简写。
116+
- `?not()` 可以使用 `!` 进行简写。
117+
- `~g` 为需要被 autoremove 的已安装包。在进行 autoremove 之前建议进行一次检查。
118+
- `~i` 为已经安装的包。
119+
- `~U` 可以升级的包。
120+
- `~nREGEX` 包名称满足正则表达式的包。
113121

114-
6. 固定包
122+
#### 固定包
115123

116-
有时我们希望固定一个包,使得这个包不会被改变或升级。
124+
有时我们希望固定一个包,使得这个包不会被改变或升级。
117125

118-
这时可以使用 `apt-mark hold <name>` ,这个包将会被固定,其不会被升级。
126+
这时可以使用 `apt-mark hold <name>` ,这个包将会被固定,其不会被升级。
119127

120128
<!-- automatic 和 manual 安装的区别,autoremove 的功能 -->
121129
<!-- "Recommends", "Suggests" 等是什么;在需要精简的场合使用 --no-install-recommends 避免安装不必要的软件包 -->

0 commit comments

Comments
 (0)