@@ -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