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