[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 下一页 ]


Debian GNU/Linux FAQ
第 8 章 - Debian 软件包管理工具


8.1 Debian 提供了哪些程序来管理软件包?

有多种工具可用于管理 Debian 软件包,从图形或基于文本的界面到用于安装软件包的底层工具。所有可用的工具都依赖于较低级别的工具才能正常工作,并且在此处以复杂度递减的顺序呈现。

重要的是要理解,诸如 aptitudedselect 之类的高级软件包管理工具依赖于 apt,而 apt 本身又依赖于 dpkg 来管理系统中的软件包。

有关 Debian 软件包管理实用程序的更多信息,请参阅 第 2 章 Debian 软件包管理,该章节出自 Debian 参考手册。本文档提供多种语言和格式,请参阅 DDP 用户手册概述中的 Debian 参考条目


8.1.1 dpkg

这是主要的软件包管理程序。可以使用许多选项调用 dpkg。一些常见的用法是


8.1.2 APT

APT 是高级软件包工具,并提供 apt-get 程序。 apt-get 提供了一种使用命令行从多个源检索和安装软件包的简单方法。与 dpkg 不同,apt-get 不理解 .deb 文件,它使用软件包的正确名称,并且只能从 /etc/apt/sources.list 中指定的源安装 .deb 软件包。 apt-get 将在从配置的源下载 .deb 软件包[5]后直接调用 dpkg

一些常见的 apt-get 用法是

请注意,您必须以 root 用户身份登录才能执行任何修改系统软件包的命令。

请注意,apt-get 现在默认安装推荐的软件包,并且是从控制台执行系统安装和主要系统升级的首选软件包管理程序,因为它具有强大的功能。

apt 工具套件还包括 apt-cache 工具,用于查询软件包列表。您可以使用它通过简单的文本或正则表达式查询以及软件包管理系统中的依赖关系查询来查找提供特定功能的软件包。一些常见的 apt-cache 用法是

有关更多信息,请安装 apt 软件包并阅读 apt-get(8)sources.list(5),并安装 apt-doc 软件包并阅读 /usr/share/doc/apt-doc/guide.html/index.html


8.1.3 aptitude

aptitude 是 Debian GNU/Linux 系统的软件包管理器,它为 apt 软件包管理基础架构提供前端。 aptitude 是一个使用 curses 库的基于文本的界面,它可用于快速简便地执行管理任务。

aptitude 提供了 dselectapt-get 的功能,以及这两个程序中都没有的许多附加功能

您可以通过可视化界面(只需运行 aptitude)或直接从命令行使用 aptitude。使用的命令行语法与 apt-get 中使用的语法非常相似。例如,要安装 foo 软件包,您可以运行 aptitude install foo

请注意,aptitude 是从控制台进行日常软件包管理的首选程序。

有关更多信息,请阅读手册页 aptitude(8) 并安装 aptitude-doc 软件包。


8.1.4 synaptic

synaptic 是一个图形软件包管理器。它使您能够以用户友好的方式安装、升级和删除软件包。除了 aptitude 提供的所有功能外,它还具有编辑已使用存储库列表的功能,并支持浏览与软件包相关的所有可用文档。有关更多信息,请参阅 Synaptic 网站


8.1.5 tasksel

当您想要执行特定任务时,可能很难找到满足您需求的合适的软件包套件。 Debian 开发人员定义了 任务,任务是与特定活动相关联的几个独立 Debian 软件包的集合。可以通过 tasksel 程序或通过 aptitude 安装任务。

Debian 安装程序通常会自动安装与标准系统和桌面环境关联的任务。安装的特定桌面环境将取决于使用的 CD/DVD 介质,最常见的是 GNOME 桌面(gnome-desktop 任务)。此外,根据您在安装过程中所做的选择,任务也可能会自动安装在您的系统中。例如,如果您选择了语言,则与其关联的任务也会自动安装,如果您在笔记本电脑系统上运行,安装程序会识别到 laptop 任务也会被安装。


8.1.6 其他软件包管理工具


8.1.6.1 dselect

此程序是 Debian 软件包管理系统的菜单驱动界面。对于 woody 和更早的版本,这是首次安装的主要软件包管理界面,但目前鼓励用户改用 aptitude。一些用户可能会觉得使用 aptitude 更舒服,并且对于大规模升级,也建议使用 aptitude 而不是 dselect。有关 aptitude 的更多信息,请参阅aptitude,第 8.1.3 节

dselect 可以

dselect 首先向用户显示一个包含 7 个项目的菜单,每个项目都是一个特定操作。用户可以使用箭头键移动突出显示栏来选择其中一个操作,然后按 <enter> 键来选择突出显示的操作。

用户接下来看到的内容取决于他选择的操作。如果他选择除了 AccessSelect 之外的任何选项,则 dselect 将简单地继续执行指定的操作:例如,如果用户选择了操作 Remove,则 dselect 将继续删除用户上次选择 Select 操作时选择要删除的所有文件。

Access 菜单项和 Select 菜单项都指向其他菜单。在这两种情况下,菜单都以分屏形式呈现;顶部屏幕提供可滚动的选择列表,而底部屏幕为每个选择提供简要说明(“信息”)。

提供广泛的在线帮助,随时使用“?”键获取帮助屏幕。

第一个 dselect 菜单中呈现的操作顺序表示用户通常选择 dselect 安装软件包的顺序。但是,用户可以根据需要多次选择任何主菜单选项(包括完全不选择,具体取决于想要做什么)。


8.1.6.2 dpkg-deb

此程序操作 Debian 软件包(.deb)文件。一些常见的用法是

请注意,使用 dpkg-deb --extract 仅仅解包的任何软件包都将安装不正确,您应该改用 dpkg --install

更多信息请参见手册页 dpkg-deb(1)


8.1.6.3 dpkg-split

此程序将大型软件包拆分为较小的文件(例如,用于写入一组软盘),也可用于将一组拆分的文件合并回单个文件。它只能在 Debian 系统(即包含 dpkg 软件包的系统)上使用,因为它调用程序 dpkg-deb 将 debian 软件包文件解析为其组件记录。

例如,要将一个大的 .deb 文件拆分为 N 个部分,


8.2 Debian 声称能够更新正在运行的程序;这是如何实现的?

Debian GNU/Linux 系统中的内核(文件系统)支持替换文件,即使文件正在使用中。

我们还提供了一个名为 start-stop-daemon 的程序,该程序用于在启动时启动守护进程,或在运行级别更改时(例如,从多用户更改为单用户或停止)停止守护进程。当安装包含守护进程的新软件包时,安装脚本也会使用相同的程序来停止正在运行的守护进程,并在必要时重新启动它们。


8.3 如何知道 Debian 系统上已安装了哪些软件包?

要了解 Debian 系统上安装的所有软件包的状态,请执行命令

     dpkg --list

这会为每个软件包打印单行摘要,给出 2 个字母的状态符号(在标题中解释)、软件包名称、已安装的版本和简短描述。

要了解名称与以“foo”开头的任何模式匹配的软件包的状态,请执行命令

     dpkg --list 'foo*'

要获取特定软件包的更详细报告,请执行命令

     dpkg --status packagename

8.4 如何显示已安装软件包的文件?

要列出已安装软件包 foo 提供的所有文件,请执行命令

     dpkg --listfiles foo

请注意,安装脚本创建的文件不会显示。


8.5 如何找出哪个软件包生成了特定文件?

要识别生成名为 foo 的文件的软件包,请执行以下任一命令


8.6 为什么当我卸载“foo”时,“foo-data”没有被删除?如何确保旧的未使用库软件包被清除?

某些软件包分为程序(“foo”)和数据(“foo-data”)(或“foo”和“foo-doc”)。这对于 Debian 中的许多游戏、多媒体应用程序和词典来说是正确的,并且自那时以来引入,因为某些用户可能希望在不安装程序的情况下访问原始数据,或者因为程序可以在没有数据本身的情况下运行,使其成为可选的。

处理库时也会出现类似情况:通常,由于包含应用程序的软件包依赖于它们,因此会安装这些库。当应用程序软件包被清除时,库软件包可能会保留在系统上。或者:当应用程序软件包不再依赖例如 libdb4.2,而是依赖于 libdb4.3 时,当应用程序软件包升级时,libdb4.2 软件包可能会保留。

在这些情况下,“foo-data”不依赖于“foo”,因此当您删除“foo”软件包时,大多数软件包管理工具不会自动删除它。库软件包也是如此。这是避免循环依赖所必需的。如果您使用 aptitude(请参阅aptitude,第 8.1.3 节)作为您的软件包管理工具,它将自动跟踪自动安装的软件包,并在系统中不再有软件包需要它们时删除它们。


[ 上一页 ] [ 目录 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 16 ] [ 下一页 ]


Debian GNU/Linux FAQ

版本 5.0,2011 年 8 月 27 日

作者列表请参见Debian FAQ 作者