Skip to content

Commit 4a6d01c

Browse files
committed
modified docs/ops/package.md
1 parent 76cfb83 commit 4a6d01c

File tree

1 file changed

+64
-64
lines changed

1 file changed

+64
-64
lines changed

docs/ops/package.md

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -26,82 +26,82 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
2626

2727
#### 安装软件包
2828

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

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

33-
`dpkg -i <name_version.deb>`
33+
`dpkg -i <name_version.deb>`
3434

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

37-
`apt install <name>`
37+
`apt install <name>`
3838

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

4141
#### 卸载软件包
4242

43-
使用 dpkg 直接卸载:
43+
使用 dpkg 直接卸载:
4444

45-
`dpkg -r <name>`
45+
`dpkg -r <name>`
4646

47-
使用 apt 卸载:
47+
使用 apt 卸载:
4848

49-
`apt remove name`
49+
`apt remove name`
5050

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

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

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

5858
#### 推荐与建议
5959

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

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

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

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

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

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

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

7575
#### 查找包中文件与文件所属的包,替换 command not found
7676

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

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

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

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

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

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

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

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

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

9595
#### 查找包
9696

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

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

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

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

106106
- `?and()` 也可以使用空格分隔若干个 apt-patterns 简写。
107107
- `?or()` 也可以使用 `|` 分隔若干个 apt-patterns 简写。
@@ -113,58 +113,58 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
113113

114114
#### 固定包
115115

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

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

120120
#### 自动更新
121121

122-
一般而言,使用 apt 的系统默认安装了`unattended-upgrades`包,如果系统上没有,可以使用
122+
一般而言,使用 apt 的系统默认安装了`unattended-upgrades`包,如果系统上没有,可以使用
123123

124-
```sh
125-
apt install unattended-upgrades
126-
```
124+
```sh
125+
apt install unattended-upgrades
126+
```
127127

128-
进行安装
128+
进行安装
129129

130-
可以使用
130+
可以使用
131131

132-
```sh
133-
sudo unattended-upgrades --dry-run --debug
134-
```
132+
```sh
133+
sudo unattended-upgrades --dry-run --debug
134+
```
135135

136-
检验系统自动更新是否可用
136+
检验系统自动更新是否可用
137137

138-
unattended-upgrades 以 systemd 服务形式存在,通过以下命令启动自动更新
138+
unattended-upgrades 以 systemd 服务形式存在,通过以下命令启动自动更新
139139

140-
```sh
141-
sudo systemctl enable unattended-upgrades
142-
sudo systemctl start unattended-upgrades
143-
```
140+
```sh
141+
sudo systemctl enable unattended-upgrades
142+
sudo systemctl start unattended-upgrades
143+
```
144144

145145
#### 使用 aptitude 作为替代前端
146146

147-
aptitude 是 dpkg 的一个 tui 前端,拥有更加简洁的操作以及更加完善的依赖解析机制。
147+
aptitude 是 dpkg 的一个 tui 前端,拥有更加简洁的操作以及更加完善的依赖解析机制。
148148

149-
在终端里直接运行 `aptitude` 命令即可
149+
在终端里直接运行 `aptitude` 命令即可
150150

151-
可以使用 `?` 键查看说明,使用 `q` 退出
151+
可以使用 `?` 键查看说明,使用 `q` 退出
152152

153153
#### 进行完整性校验
154154

155-
dpkg 可以对已经安装的包进行完整性校验。
155+
dpkg 可以对已经安装的包进行完整性校验。
156156

157-
通过
157+
通过
158158

159-
```sh
160-
dpkg -V <name>
161-
```
159+
```sh
160+
dpkg -V <name>
161+
```
162162

163-
对已经安装的包的完整性进行检查
163+
对已经安装的包的完整性进行检查
164164

165-
可以省略 `<name>` 选项,以对于所有包进行检查。
165+
可以省略 `<name>` 选项,以对于所有包进行检查。
166166

167-
注意,该操作并不能可靠地用于防范病毒入侵,其主要用途是防范意外的数据丢失或修改。
167+
注意,该操作并不能可靠地用于防范病毒入侵,其主要用途是防范意外的数据丢失或修改。
168168

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

0 commit comments

Comments
 (0)