File tree Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Expand file tree Collapse file tree 1 file changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -26,50 +26,52 @@ Debian 下还有很多包管理软件,如 Synaptics、Aptitude,这里不一
26
26
27
27
#### 安装软件包
28
28
29
- 如果我们需要安装一个名称为 name 的包
29
+ 如果我们需要安装一个 ` package.deb ` 软件包:
30
30
31
- 在手动下载 .deb 包后,使用 dpkg 直接安装 .deb 包 :
31
+ 在手动下载 .deb 包后,使用 apt 安装软件包 :
32
32
33
33
``` shell
34
- dpkg -i < name_version .deb>
34
+ apt install < path/to/package .deb>
35
35
```
36
36
37
- 使用 apt 安装软件包 :
37
+ 对于没有额外依赖的软件,也可以使用 dpkg 直接安装 :
38
38
39
39
``` shell
40
- apt install < name >
40
+ dpkg -i < path/to/package.deb >
41
41
```
42
42
43
- 如果 name 有未在系统上安装的依赖的话,那么第一个命令会失败 (除非使用 ` --force ` 选项),第二个命令会下载对应的安装包及其依赖,并且进行安装 。
43
+ 如果该软件包有未在系统上安装的依赖的话,那么 ` dpkg ` 命令会失败 (除非使用 ` --force ` 选项),因此 ** 在绝大多数情况下,我们不推荐直接操作 ` dpkg ` 等底层命令 ** 。
44
44
45
45
#### 卸载软件包
46
46
47
- 使用 dpkg 直接卸载 :
47
+ 使用 apt 卸载 :
48
48
49
49
``` shell
50
- dpkg -r < name >
50
+ apt remove package_name
51
51
```
52
52
53
- 使用 apt 卸载 :
53
+ 使用 dpkg 直接卸载 :
54
54
55
55
``` shell
56
- apt remove name
56
+ dpkg -r < package_name >
57
57
```
58
58
59
+ 与安装时的情况类似,如果 package_name 被其他软件包依赖,apt 会尝试将被依赖的软件包一并卸载(** 请一定要看清楚 apt 列出的清单再确认** ),而 ` dpkg ` 会失败。
60
+
59
61
那么现在产生了一个问题:要是我安装了一个有很多依赖的包,那么我们卸载它时依赖不会同时被卸载。这样依赖会一直占据我们电脑里面的空间。而手动卸载依赖并不直观,还可能破坏其他包的依赖。
60
62
61
63
因此,在使用 APT 安装一个包时,我们将其标记为 manual,在安装依赖时,我们将其标记为 automatic,
62
64
那么我们知道** 所有没有被 manual 直接或者间接依赖的 automatic 包** 都是不必要的。
63
65
64
- 这样,我们可以使用` apt autoremove ` 来卸载不必要的包以释放存储空间。
66
+ 这样,我们可以使用 ` apt autoremove ` 来卸载不必要的包以释放存储空间。
65
67
66
68
#### 推荐与建议
67
69
68
70
安装软件包时,APT 在默认配置下会安装推荐(Recommended)的包。还会提示你可以安装建议(Suggested)的包以拓展原包的功能。
69
71
70
72
比如:apt 包的推荐有 ca-certificates,建议包有 aptitude、synaptic、gnupg、powermgmt-base 和 dpkg-dev
71
73
72
- 那么安装这个包时,会默认安装 ca-certificates,结束后会给出后面的包的提示 。
74
+ 那么安装这个包时,会默认安装 ca-certificates,并给出后面的包的提示 。
73
75
74
76
为了精简安装的软件包,可以使用 ` --no-install-recommends ` 的选项,以跳过推荐的软件包。
75
77
You can’t perform that action at this time.
0 commit comments