6.4. 前置:aptitude、synaptic

APT 是 C++ 写成程序,甚源代码在 libapt-pkg 共享程序库内。以此共享程序库创建读者接口 (前置),因为很容易再利用在程序库内的源代码。过去 apt-get 只当做 libapt-pkg 的测试前置,但此事实也渐趋模糊。

6.4.1. aptitude

aptitude 是交互程序,可用于终端机的半图形模式可浏览已安装与可得软件包,搜索所有可用信息,并选择安装或移除的软件包。此程序专为管理者而设计,缺省的对象比 apt-get 的对象更聪慧,且其接口更容易理解。

The aptitude 软件包管理者

图 6.1. The aptitude 软件包管理者

开始的时候,aptitude 依状态显示所有的软件包 (已安装、未安装、或已安装在不在镜射站 — 其他的区块显示工作、虚拟软件包、与最近才出现在镜射站的添加软件包)。还有其他的查看方法,提供主题式浏览。所有的情况下,aptitude 在屏幕显示各主题与软件包的清单。以树状组织主题,可以用 Enter[] 按键展开与收起枝叶。+ 应用于标示可安装的软件包,- 标示可移除的软件包与 _ 标示可清除的软件包 (这些按键也可用遟主题,对应的行动适用于主题的所有软件包)。u 用于更新可用软件包清单与 Shift+u 准备全系统的更新。g 切换摘要查看要求的改变 (并再次键入 g 纳入此等改变),与 q 离开现在的查看。若您在初始的查看,将关闭 aptitude

文档 aptitude

此区块不包括使用 aptitude 的详情,只专注于提供急救用的工具包。aptitude 的文档较完整,建议您使用 aptitude-doc-en 软件包内的完整手册 (见 /usr/share/doc/aptitude/html/en/index.html)。

键入 / 及搜索的键词,就能搜索软件包。键词对应至软件包的名称,也可应用于描述内容 (若前置 ~d、区块 (前置 ~s) 或文档内的其他字词。同样的键词可以筛选显示软件包的清单:键入 l 键 (如同在 limit 之内) 与其他键词。

管理 Debian 软件包的 “自动旗标” (见 第 6.2.7 节 “自动追踪已安装的软件包”),对 aptitude 而言是小事一椿。可以用 Shift+m 浏览已安装并标示为自动的软件包或以 m 键移除标示。在软件包清单内,“自动软件包” 标示为 “A”。此功能也可简单看到机器内正在使用的软件包,不必看那些程序库与相依性繁琐的细节。相关的键词可以与 l (启动筛选模式) 一起使用的是 ~i!~M。它的作用是只看已安装的软件包 (~i) 不是被标示为自动(!~M) 的软件包。

工具 在命令行接口使用 aptitude

经由命令行或交互接口可以近用 aptitude 大部分的功能。命令行看来像是 apt-getapt-cache

也能从命令行近用 aptitude 的高端功能。使用交互版相同的软件包搜索模式。例如,清除 “手动安装” 软件包、本地安装的程序不再需要程序库或 Perl 模块,就可把对应的软件包标示为自动:

  1. #

从这里您可看到 aptitude 搜索模式系统的威力,即时选取 libsperl 区块的所有软件包。

小心对应,部分软件包被标记为自动且其他软件包均未相依于它们,该等软件包就会被自动移除 (经过确认程序)。

6.4.1.1. 管理推荐、建议与工作

aptitude 另个有趣的功能是尊重软件包间的建议,但给使用以个案方式选择不安装的自由。例如,gnome 软件包建议 gdebi (及其他选择)。选择前者安装时,后者也被选取 (若未安装在系统内则标记为自动)。键入 g 将使其更明显:gdebi 显示在满足相依性的自动安装软件包清单里的待决摘要画面。然而,在确认前可以不选择,而自行决定不要安装。

此推荐追踪功能不适用于更新。例如,若 gnome 新版建议一个不包括稍前版本的软件包,就不会安装它。然而,还是列在屏幕,管理者仍可点击并安装它。

同时把软件包间的建议列入考量,但调整入特别的情况。例如,自从 gnome 建议 dia-gnome,后者显示在屏幕的待决区 (其他软件包的建议区)。这样子,就能看见且管理者可以决定是否把它们列入考量。毕竟只是建议而不是相依或提议,软件包仍不会被列入自动 — 需要读者的人工介入 (因此,软件包不会被标示为自动)。

在同样的精神下,记得 aptitude 以智能的手法使用工作的概念。在屏幕的软件包清单中显示工作,可以安装或移除选定的完整工作,或浏览包括选定较小工作的软件包清单。

6.4.1.2. 较佳的解决算法

总结本段的内容,在解决困难情境时,aptitude 的演算较 apt-get 更为复杂。需要运行一组工作且可能带领至另个支离的系统,aptitude 评估若干可能的状况以递减关联的方式呈现。然而,这些算法不是失败的证明。幸运的是,总有手动选择运行的可能。现在的选择带领至矛盾的地方时,屏幕的上方就指出若干 “破碎” 的软件包 (and you can directly navigate to those packages by pressing b)。就可能以人工方式创建解决此问题的方案。尤其是,可以按 Enter 键选取近用多个可用的版本。选定的版本可以解决问题,就勇敢不迟疑地使用其功能。破碎软件包渐趋于零后,您可安全地进入待决区的摘要画面,于使用前再次确认。

说明 aptitude 的记录档

如同 dpkgaptitude 追踪运行动作存在其记录档内 (/var/log/aptitude)。然而,两个命令分别在不同层次工作,各自的记录档有不同的信息。当 dpkg 记录对各别软件包的一步步运作,aptitude 则记录系统更新之类的高端运作。

小心,记录档只包括 aptitude 工作的摘要。若另个前端 (或即使是 dpkg 自身) 只是偶而用到,则 aptitude 的记录档将只包括工作的部分,所以不能依赖它创建系统的过去。

6.4.2. synaptic

synaptic 是 Debian 的软件包图形管理器,在 GTK+/GNOME 的基础上提供清楚有效的图形接口。它以很多的立即可用筛选器提供快速近用添加的软件包、安装软件包、可升级软件包、过时软件包等。经由这些清单浏览,选定对软件包的工作 (安装、升级、移除、清除);不会立即运行此等工作,但把它们放入工作清单。单键按下可运行的工作,接着就可运行。

synaptic 软件包管理器

图 6.2. synaptic 软件包管理器