guide.deepin.org/docs/deepin进阶教程/2.deepin软件包管理/2.2.基础软件包管理操作.md
xzl 75e27661e0 refactor: 重构文档目录
移除了所有数字标号

Log:
2023-03-06 16:45:33 +08:00

111 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基础软件包管理操作
在 deepin 系统中有许多基于 APT 的软件包管理工具可以在 Debian 系统上进行基于仓库的软件包管理操作。在这里,我们将介绍 3 种基本的软件包管理工具apt,apt-get / apt-cache 和 aptitude以及一个包文件查询工具apt-file 。
对于涉及软件包安装或更新软件包元数据的软件包管理操作,你必须有 root 权限。
## `apt` vs. `apt-get` / `apt-cache` vs. `aptitude`
尽管 `aptitude` 是作者主要使用的一个非常好的可互动工具,但不建议使用其进行跨版本升级。
apt-get 和 apt-cache 是最基础 的基于 APT 的软件包管理工具。
- apt-get 和 apt-cache 只提供命令行用户界面。
- apt-get 是进行跨版本的主系统升级等操作的最合适工具。
- apt-get 提供了一个强大的软件包依赖解析器。
- apt-get 对硬件资源的要求不高。它消耗更少的内存并且运行速度更快。
- apt-cache 提供了一个 标准的正则表达式来搜索软件包名称和描述。
- apt-get 和 apt-cache 可以使用 /etc/apt/preferences 来管理软件包的多个版本,但这非常繁琐。
apt 命令是一个用于软件包管理的高级命令行界面。它基本上是 apt-get、apt-cache 和类似命令的一个封装,被设计为针对终端用户交互的界面,它默认启用了某些适合交互式使用的选项。
- apt 工具在用户使用 apt install 安装软件包时提供了一个友好的进度条。
- 在成功安装下载的软件包后apt 将默认删除缓存的 .deb 软件包。
建议用户使用新的 apt(8) 命令用于 交互式的使用场景,而在 shell 脚本中使用 apt-get(8) 和apt-cache(8) 命令。
aptitude 命令是最通用的基于 APT 的软件包管理工具。
- aptitude 提供了一个全屏的交互式文本用户界面。
- aptitude 同样也提供了一个命令用户界面。
- aptitude 是用于日常软件包管理(例如检查已安装的软件包和搜索可用的软件包)的最合适工具。
- aptitude 对硬件资源的要求更高。它消耗更多的内存并且运行速度更慢。
- aptitude 提供一个增强的正则表达式来搜索所有的软件包元数据。
- aptitude 可以管理软件包的多个版本,并且不使用 /etc/apt/preferences这会十分直观。
## 命令行中的基础软件包管理操作
下面是使用 `apt`(8), `aptitude`(8) 和 `apt-get`(8) / `apt-cache`(8) 的命令行基本软件包管理操作。
|apt 语法|aptitude 语法|apt-get / apt-cache 语法|说明|
|-|-|-|-|
|apt update|aptitude update|apt-get update|更新软件包档案库元数据|
|apt install foo|aptitude install foo|apt-get install foo|安装 “foo” 软件包的候选版本以及它的依赖|
|apt upgrade|aptitude safe-upgrade|apt-get upgrade|安装已安装的软件包的候选版本并且不移除任何其它的软件包|
|apt full-upgrade|aptitude full-upgrade|apt-get dist-upgrade|安装已安装的软件包的候选版本,并且需要的话会移除其它的软件包|
|apt remove foo|aptitude remove foo|apt-get remove foo|移除 “foo” 软件包,但留下配置文件|
|apt autoremove|N/A|apt-get autoremove|移除不再需要的自动安装的软件包|
|apt purge foo|aptitude purge foo|apt-get purge foo|清除 “foo” 软件包的配置文件|
|apt clean|aptitude clean|apt-get clean|完全清除本地仓库的软件包检索文件|
|apt autoclean|aptitude autoclean|apt-get autoclean|清除本地仓库中过时软件包的软件包检索文件|
|apt show foo|aptitude show foo|apt-cache show foo|显示 “foo” 软件包的详细信息|
|apt search 正则表达式|aptitude search regex|apt-cache search regex|搜索匹配 regex 的软件包|
|N/A|aptitude why regex|N/A|解释匹配 regex 的软件包必须被安装的原因|
|N/A|aptitude why-not regex|N/A|解释匹配 regex 的软件包不必安装的原因|
|N/A|aptitude search '~i!~M'|apt-mark showmanual|列出手动安装的软件包|
不建议使用apt autoremove,因为这会损害到某些打包不规范的包。
`apt` / `apt-get``aptitude` 能够混用,没有大问题。
“`aptitude why regex`” 可以通过 “`aptitude -v why regex`” 列出更多的信息。类似的信息可以通过"`apt rdepends package`" 或 “`apt-cache rdepends package`” 获取。
`aptitude` 命令在命令行模式下启动后遇到了一些问题(例如软件包冲突),你可以在之后的提示中按下 “`e`” 键切换到全屏的交互模式。
你可以在 “`aptitude`” 后面使用的命令选项。
|命令选项|说明|
|-|-|
|-s|模拟命令的结果|
|-d|仅下载,不进行安装/更新|
|-D|在自动安装和删除前,显示简要的说明|
更多内容参见 `aptitude`(8) 和位于 “`/usr/share/doc/aptitude/README`” 的 “aptitude 用户手册”。
## aptitude 的交互式使用
此处不会详细解释其使用方式详见deepin wiki 以及 Debian对其介绍
aptitude按键绑定
|快捷键|键绑定功能|
|-|-|
|F10 或 Ctrl-t|菜单|
|?|显示按键帮助(更加完整的清单)|
|F10 → 帮助 → 用户手册|显示用户手册|
|u|更新软件包档案库信息|
|+|标记该软件包以便升级或安装|
|-|标记该软件包以便移除(保留配置文件)|
|_|标记该软件包以便清除(移除配置文件)|
|=|将软件包设为保持状态|
|U|标记所有可升级包(动作如同 full-upgrade|
|g|开始 下载 并 安装 所选择包|
|q|退出该界面并保存变更|
|x|退出该界面并清除变更|
|Enter|查看软件包的信息|
|C|查看软件包的变更记录|
|l|变更软件包的显示限制|
|/|搜寻匹配的第一个软件包|
|\|重复上一个搜索|