@@ -26,82 +26,82 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
26
26
27
27
#### 安装软件包
28
28
29
- 如果我们需要安装一个名称为 name 的包
29
+ 如果我们需要安装一个名称为 name 的包
30
30
31
- 在手动下载 .deb 包后,使用 dpkg 直接安装 .deb 包:
31
+ 在手动下载 .deb 包后,使用 dpkg 直接安装 .deb 包:
32
32
33
- ` dpkg -i <name_version.deb> `
33
+ ` dpkg -i <name_version.deb> `
34
34
35
- 使用 apt 安装软件包:
35
+ 使用 apt 安装软件包:
36
36
37
- ` apt install <name> `
37
+ ` apt install <name> `
38
38
39
- 如果 name 有未在系统上安装的依赖的话,那么第一个命令会失败(除非使用 ` --force ` 选项),第二个命令会下载对应的安装包及其依赖,并且进行安装。
39
+ 如果 name 有未在系统上安装的依赖的话,那么第一个命令会失败(除非使用 ` --force ` 选项),第二个命令会下载对应的安装包及其依赖,并且进行安装。
40
40
41
41
#### 卸载软件包
42
42
43
- 使用 dpkg 直接卸载:
43
+ 使用 dpkg 直接卸载:
44
44
45
- ` dpkg -r <name> `
45
+ ` dpkg -r <name> `
46
46
47
- 使用 apt 卸载:
47
+ 使用 apt 卸载:
48
48
49
- ` apt remove name `
49
+ ` apt remove name `
50
50
51
- 那么现在产生了一个问题:要是我安装了一个有很多依赖的包,那么我们卸载它时依赖不会同时被卸载。这样依赖会一直占据我们电脑里面的空间。而手动卸载依赖并不直观,还可能破坏其他包的依赖。
51
+ 那么现在产生了一个问题:要是我安装了一个有很多依赖的包,那么我们卸载它时依赖不会同时被卸载。这样依赖会一直占据我们电脑里面的空间。而手动卸载依赖并不直观,还可能破坏其他包的依赖。
52
52
53
- 因此,在使用 APT 安装一个包时,我们将其标记为 manual,在安装依赖时,我们将其标记为 automatic,
54
- 那么我们知道** 所有没有被 manual 直接或者间接依赖的 automatic 包** 都是不必要的。
53
+ 因此,在使用 APT 安装一个包时,我们将其标记为 manual,在安装依赖时,我们将其标记为 automatic,
54
+ 那么我们知道** 所有没有被 manual 直接或者间接依赖的 automatic 包** 都是不必要的。
55
55
56
- 这样,我们可以使用` apt autoremove ` 来卸载不必要的包以释放存储空间。
56
+ 这样,我们可以使用` apt autoremove ` 来卸载不必要的包以释放存储空间。
57
57
58
58
#### 推荐与建议
59
59
60
- 安装软件包时,APT 在默认配置下会安装推荐(Recommended)的包。还会提示你可以安装建议(Suggested)的包以拓展原包的功能。
60
+ 安装软件包时,APT 在默认配置下会安装推荐(Recommended)的包。还会提示你可以安装建议(Suggested)的包以拓展原包的功能。
61
61
62
- 比如:apt 包的推荐有 ca-certificates,建议包有 aptitude、synaptic、gnupg、powermgmt-base 和 dpkg-dev
62
+ 比如:apt 包的推荐有 ca-certificates,建议包有 aptitude、synaptic、gnupg、powermgmt-base 和 dpkg-dev
63
63
64
- 那么安装这个包时,会默认安装 ca-certificates,结束后会给出后面的包的提示。
64
+ 那么安装这个包时,会默认安装 ca-certificates,结束后会给出后面的包的提示。
65
65
66
- 为了精简安装的软件包,可以使用 ` --no-install-recommends ` 的选项,以跳过推荐的软件包。
66
+ 为了精简安装的软件包,可以使用 ` --no-install-recommends ` 的选项,以跳过推荐的软件包。
67
67
68
- 还可以在配置文件中添加 ` Apt::Install-Recommends "false" ` 以使默认配置不会安装推荐的包。
68
+ 还可以在配置文件中添加 ` Apt::Install-Recommends "false" ` 以使默认配置不会安装推荐的包。
69
69
70
- 当这类包被安装的时候,它们的类型为 automatic,也就是说在默认情况下,
71
- 如果没有软件** 推荐或者建议它们** ,它们会被 ` apt autoremove ` 卸载。
70
+ 当这类包被安装的时候,它们的类型为 automatic,也就是说在默认情况下,
71
+ 如果没有软件** 推荐或者建议它们** ,它们会被 ` apt autoremove ` 卸载。
72
72
73
- 使用 ` apt-mark (automatic|manual) <name> ` 修改包的状态。
73
+ 使用 ` apt-mark (automatic|manual) <name> ` 修改包的状态。
74
74
75
75
#### 查找包中文件与文件所属的包,替换 command not found
76
76
77
- APT 家族中存在一个用于查找文件所属包的工具 ` apt-file `
77
+ APT 家族中存在一个用于查找文件所属包的工具 ` apt-file `
78
78
79
- 使用 ` apt-file update ` 进行数据库的初始化及更新。
79
+ 使用 ` apt-file update ` 进行数据库的初始化及更新。
80
80
81
- 使用 ` apt-file search <file> ` 进行搜索。
81
+ 使用 ` apt-file search <file> ` 进行搜索。
82
82
83
- 可以使用 ` dpkg -S <file> ` 搜索所有** 已安装** 包中的文件。
83
+ 可以使用 ` dpkg -S <file> ` 搜索所有** 已安装** 包中的文件。
84
84
85
- 反过来,想要查看一个包包含什么文件,可以使用 ` apt-file list <name> ` 。
85
+ 反过来,想要查看一个包包含什么文件,可以使用 ` apt-file list <name> ` 。
86
86
87
- 使用 ` dpkg-deb -c <name_version.deb> ` 查看 .deb 中内容。
87
+ 使用 ` dpkg-deb -c <name_version.deb> ` 查看 .deb 中内容。
88
88
89
- 也可以使用 ` dpkg-query -L <name> ` ,但是这只对已经安装的包生效。
89
+ 也可以使用 ` dpkg-query -L <name> ` ,但是这只对已经安装的包生效。
90
90
91
- 在使用了一个未安装的命令时,可以选择使用 ` command-not-found ` 。
91
+ 在使用了一个未安装的命令时,可以选择使用 ` command-not-found ` 。
92
92
93
- 其安装方式十分简单,只需 ` apt install command-not-found ` 即可。
93
+ 其安装方式十分简单,只需 ` apt install command-not-found ` 即可。
94
94
95
95
#### 查找包
96
96
97
- ` apt search <name> ` 可以进行包的查找。
97
+ ` apt search <name> ` 可以进行包的查找。
98
98
99
- 也可以通过使用一种特殊的语法(apt-patterns)来进行更具体的查找。
99
+ 也可以通过使用一种特殊的语法(apt-patterns)来进行更具体的查找。
100
100
101
- 比如你想寻找已经安装,并且名称包含 gcc 的软件,可以使用 ` ~i ~ngcc ` ,
102
- 如果要求名称完全匹配,可以使用 ` ~i ?exact-name(gcc) `
101
+ 比如你想寻找已经安装,并且名称包含 gcc 的软件,可以使用 ` ~i ~ngcc ` ,
102
+ 如果要求名称完全匹配,可以使用 ` ~i ?exact-name(gcc) `
103
103
104
- 以下是一些常见的 apt-patterns 单位
104
+ 以下是一些常见的 apt-patterns 单位
105
105
106
106
- ` ?and() ` 也可以使用空格分隔若干个 apt-patterns 简写。
107
107
- ` ?or() ` 也可以使用 ` | ` 分隔若干个 apt-patterns 简写。
@@ -113,58 +113,58 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
113
113
114
114
#### 固定包
115
115
116
- 有时我们希望固定一个包,使得这个包不会被改变或升级。
116
+ 有时我们希望固定一个包,使得这个包不会被改变或升级。
117
117
118
- 这时可以使用 ` apt-mark hold <name> ` ,这个包将会被固定,其不会被升级。
118
+ 这时可以使用 ` apt-mark hold <name> ` ,这个包将会被固定,其不会被升级。
119
119
120
120
#### 自动更新
121
121
122
- 一般而言,使用 apt 的系统默认安装了` unattended-upgrades ` 包,如果系统上没有,可以使用
122
+ 一般而言,使用 apt 的系统默认安装了` unattended-upgrades ` 包,如果系统上没有,可以使用
123
123
124
- ``` sh
125
- apt install unattended-upgrades
126
- ```
124
+ ``` sh
125
+ apt install unattended-upgrades
126
+ ```
127
127
128
- 进行安装
128
+ 进行安装
129
129
130
- 可以使用
130
+ 可以使用
131
131
132
- ``` sh
133
- sudo unattended-upgrades --dry-run --debug
134
- ```
132
+ ``` sh
133
+ sudo unattended-upgrades --dry-run --debug
134
+ ```
135
135
136
- 检验系统自动更新是否可用
136
+ 检验系统自动更新是否可用
137
137
138
- unattended-upgrades 以 systemd 服务形式存在,通过以下命令启动自动更新
138
+ unattended-upgrades 以 systemd 服务形式存在,通过以下命令启动自动更新
139
139
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
+ ```
144
144
145
145
#### 使用 aptitude 作为替代前端
146
146
147
- aptitude 是 dpkg 的一个 tui 前端,拥有更加简洁的操作以及更加完善的依赖解析机制。
147
+ aptitude 是 dpkg 的一个 tui 前端,拥有更加简洁的操作以及更加完善的依赖解析机制。
148
148
149
- 在终端里直接运行 ` aptitude ` 命令即可
149
+ 在终端里直接运行 ` aptitude ` 命令即可
150
150
151
- 可以使用 ` ? ` 键查看说明,使用 ` q ` 退出
151
+ 可以使用 ` ? ` 键查看说明,使用 ` q ` 退出
152
152
153
153
#### 进行完整性校验
154
154
155
- dpkg 可以对已经安装的包进行完整性校验。
155
+ dpkg 可以对已经安装的包进行完整性校验。
156
156
157
- 通过
157
+ 通过
158
158
159
- ``` sh
160
- dpkg -V < name>
161
- ```
159
+ ``` sh
160
+ dpkg -V < name>
161
+ ```
162
162
163
- 对已经安装的包的完整性进行检查
163
+ 对已经安装的包的完整性进行检查
164
164
165
- 可以省略 ` <name> ` 选项,以对于所有包进行检查。
165
+ 可以省略 ` <name> ` 选项,以对于所有包进行检查。
166
166
167
- 注意,该操作并不能可靠地用于防范病毒入侵,其主要用途是防范意外的数据丢失或修改。
167
+ 注意,该操作并不能可靠地用于防范病毒入侵,其主要用途是防范意外的数据丢失或修改。
168
168
169
169
<!-- automatic 和 manual 安装的区别,autoremove 的功能 -->
170
170
<!-- "Recommends", "Suggests" 等是什么;在需要精简的场合使用 --no-install-recommends 避免安装不必要的软件包 -->
0 commit comments