包。如果该软件包不能够容易的升级,你可以按照向 Breezy系统引入软件包,第6.4.10 节.的说明,把该软件包向後移植到你现在所使用的发行版上 如果使用混合型发行版,例如在 Breezy中加入 Dapper,或是在 Hoary中加入 Breezy, 会一不留神从 Breezy或 Dapper中下载像libc6一样的核心软件包。没有保证能够使这 些软件包不含有bug,请你高度注意! 运行 Breezy或 Dapper版本的 Ubuntu意味着可能会遇到严重软件错误。包含一个稳定版 Ubuntu的多启动方案可有效控制风险,另一个技巧是使用 chroot,详情参阅 chroot,第 8.6.35节。後者可以实际在不同的终端同时运行不同版本的 Ubuntu 在 Ubuntu基础,第2章中我们将讲解有关 Ubuntu发行版的一些基本概念,之後,我将 向你介绍一些基本信息以帮助你与最新软件快乐相处,并从 restricted和 unl verse组件 中获益。心急的读者可以直接翻到 Ubuntu生存命令,第6.3节。祝你升级愉快! 第2章- Ubuntu基础 本章讲述非开发人员需要掌握的 Ubuntu系统基础知识。有关知识的权威参考,请参阅: Desktop guide Server guide Install Guide 列表见参考资料,第15.1节。 如果你想査阅简要的“how-to”解释文档,可直接跳到 Ubuntu软件包管理,第6章或其 它相关章节。 本章的内容取自“ Ubuntu FAQˆ,经过较大的改编,以适于普通 Ubuntu系统管理者上手。 2.1 Ubuntu文件 2.1.1目录结构 Ubuntu软件包位于Ubuntu镜像站点的目录树中,可通过FTP或HTTP访问它们。 下列目录存在于任何 Ubuntu镜像站点的 ubuntu目录下: dists/∷:本目录包含“发行版”( distributions),此处是获得 Ubuntu发布版本 ( releases)和已发布版本( pre-releases)的软件包的正规途径。有些旧软件包及 Contens- *. gz Packages.gz等文件仍在其中 pool/:所有 Ubuntu发布版及已发布版的软件包的新的物理地址。 indices/::维护人员文件和重载文件 project/∷:大部分为开发人员的资源,如: project/ experimental/∷:本目录包含了处 于开发中的软件包和工具,它们均处于 alpha测试阶段。用户不应使用这些软件,因为即 使是经验丰富的用户也会被搞得一团糟。 project/ orphaned/∷已不再有人维护的软件 包,它们已从发行版中孤立出来
6 包 。 如果该软件包不能够容易的升级,你可以按照 向 Breezy 系统引入软件包, 第 6.4.10 节. 的说明,把该软件包向後移植到你现在所使用的发行版上。 如果使用混合型发行版,例如在 Breezy 中加入 Dapper , 或是在 Hoary 中加入 Breezy, 会一不留神从 Breezy 或 Dapper 中下载像 libc6 一样的核心软件包。没有保证能够使这 些软件包不含有 bug ,请你高度注意! 运行 Breezy 或 Dapper 版本的 Ubuntu 意味着可能会遇到严重软件错误。包含一个稳定版 Ubuntu 的多启动方案可有效控制风险,另一个技巧是使用 chroot,详情参阅 chroot, 第 8.6.35 节。後者可以实际在不同的终端同时运行不同版本的 Ubuntu。 在 Ubuntu 基础, 第 2 章 中我们将讲解有关 Ubuntu 发行版的一些基本概念,之後,我将 向你介绍一些基本信息以帮助你与最新软件快乐相处,并从 restricted 和 universe 组件 中获益。心急的读者可以直接翻到 Ubuntu 生存命令, 第 6.3 节。祝你升级愉快! 第 2 章 - Ubuntu 基础 本章讲述非开发人员需要掌握的 Ubuntu 系统基础知识。有关知识的权威参考,请参阅: · Desktop Guide · Server Guide · Install Guide 列表见 参考资料, 第 15.1 节。 如果你想查阅简要的“how-to”解释文档,可直接跳到 Ubuntu 软件包管理, 第 6 章 或其 它相关章节。 本章的内容取自“Ubuntu FAQ”,经过较大的改编,以适于普通 Ubuntu 系统管理者上手。 2.1 Ubuntu 文件 2.1.1 目录结构 Ubuntu 软件包位于 Ubuntu 镜像站点 的目录树中,可通过 FTP 或 HTTP 访问它们。 下列目录存在于任何 Ubuntu 镜像站点的 ubuntu 目录下: dists/::: 本目录包含“发行版”(distributions),此处是获得 Ubuntu 发布版本 (releases)和已发布版本(pre-releases)的软件包的正规途径。有些旧软件包及 Contens- *.gz Packages.gz 等文件仍在其中。 pool/::: 所有 Ubuntu 发布版及已发布版的软件包的新的物理地址。 indices/::: 维护人员文件和重载文件。 project/::: 大部分为开发人员的资源,如: project/experimental/::: 本目录包含了处 于开发中的软件包和工具,它们均处于 alpha 测试阶段。用户不应使用这些软件,因为即 使是经验丰富的用户也会被搞得一团糟。 project/orphaned/::: 已不再有人维护的软件 包,它们已从发行版中孤立出来
2.1.2 Ubuntu发行版 现在在 dists目录下有三个 Ubuntu发行版。它们是“ hoary”发行版,“ breezy”发行版, 和“ dapper”发行版。有时还有一个“edgy”发行版。其中也包含了一个现不再支持" warty" 发行版 到2007年8月, Ubuntu发行版本又增加了 feisty和 gutsy. 2.1.3 hoary发行版 hoary2005年4月发布,其发行版软件包入口: hoary/main/:“main”组件包括了自由软件、可以被自由发布的软件和被 Ubuntu团 队完全支持的软件。其中包括了大多数流行的和稳定的开源软件,当您安装 Ubuntu 时默认安装的就是这些软件。 hoary/ restricted/:“ restricted”组件是专供普遍用途,而且没有自由软件版权, 但依然被 Ubuntu团队支持的软件。请注意,因为不能直接修改软件,因而我们可能 不能提供完全的技术支持,即便如此,我们还能向实际作者反馈Bug报告 hoary/ unl verse/:“ unl verse”组件是整个自由、开源 Linux世界的缩影。在 unl verse”组件中,你可以找到大多数开源软件,以及在开源版权下的软件,所 有这些都是在公共源的基础上建立的。这些软件都是使用“main”中的组件编写的, 它们能与“main”组件相安无事地共同运行,但它们没有安全升级的保陶 “ unl verse”组件包含了数以千计的软件。虽然是公共的,用户必须明白它们与稳 定的 Ubuntu核心的软件的差异和不稳定。 hoary/ multiverse/: multiverse”组件包含了“不自由”的软件,这意味着这些软 件不满足 Ubuntu相对于“main”组件的各种版权政策。当您使用这些软件时,如 何调整各种权力以及遵重版权所有者的问题,就完全依靠您自己把握了。这些软件 不被我们支持,而且通常不能被修改和更新,您将自己承担任何风险 现在,作为以上位置的新增功能,实际上新的软件包都存储在pool目录中(pool目录,第 2.1.10节)。 2.1.4 breezy发行版 breezy2005年10月发布。现在,除了上述目录,新上载的软件包的物理存储位置为poo 目录(pool目录,第2.1.10节)。在 breezy下同样有main、 restricted、 unl verse和 multiverse子目录,它们的作用与 hoary中的一样。 2.1.5 dapper发行版 dapper2006年6月发布。提供了长达3年的支持,新版本以 Ubuntu6.06LTs( Long term Support)(长期支持),它针对一些大组织的需求对桌面版和服务器版都做个一定程度上的增 强。新上载的软件包的物理存储位置为pool目录(pool目录,第2.1.10节)。在 dapper 下同样有main、 restricted、 unlverse和 multiverse子目录,它们的作用与 hoary中的 样 2.1.6edgy发行版 edgy发行版反映了系统的最新开发进展。欢迎广大用户使用并测试这些软件包,同时也提 醒你们这些软件包还不完善。使用edgy发行版的好处就是你可以获得 Ubuntu项目的最新更 新一不过新东西也会出新问题,你得好坏兼收:-)
7 2.1.2 Ubuntu 发行版 现在在 dists 目录下有三个 Ubuntu 发行版。它们是“hoary”发 行 版 ,“breezy”发行版, 和“dapper”发行版。有时还有一个“edgy”发行版。其中也包含了一个现不再支持"warty" 发行版。 到 2007 年 8 月,Ubuntu 发行版本又增加了 feisty 和 gutsy。 2.1.3 hoary 发行版 hoary 2005 年 4 月发布,其发行版软件包入口: · hoary/main/:“main”组件包括了自由软件、可以被自由发布的软件和被 Ubuntu 团 队完全支持的软件。其中包括了大多数流行的和稳定的开源软件,当您安装 Ubuntu 时默认安装的就是这些软件。 · hoary/restricted/:“restricted”组件是专供普遍用途,而且没有自由软件版权, 但依然被 Ubuntu 团队支持的软件。请注意,因为不能直接修改软件,因而我们可能 不能提供完全的技术支持,即便如此,我们还能向实际作者反馈 Bug 报告。 · hoary/universe/:“universe”组件是整个自由、开源 Linux 世界的缩影。在 “universe”组件中,你可以找到大多数开源 软件,以及在开源版权下的软件,所 有这些都是在公共源的基础上建立的。这些软件都是使用“main”中的组件编写的, 它们能与“main”组件相安无事地 共同运行,但它们没有安全升级的保障。 “universe”组件包含了数以千计的软件。虽然是公共的,用户必须明白它们与稳 定的 Ubuntu 核心的软件的 差异和不稳定。 · hoary/multiverse/:multiverse”组件包含了“不自由”的软件,这意味着这些软 件不满足 Ubuntu 相对于“main”组件的各种版权政策。当您使用这些软件时,如 何调整各种权力以及遵重版权所有者的问题,就完全依靠您自己把握了。 这些软件 不被我们支持,而且通常不能被修改和更新,您将自己承担任何风险。 现在,作为以上位置的新增功能,实际上新的软件包都存储在 pool 目录中( pool 目录, 第 2.1.10 节 )。 2.1.4 breezy 发行版 breezy 2005 年 10 月发布。现在,除了上述目录,新上载的软件包的物理存储位置为 pool 目录( pool 目录, 第 2.1.10 节)。在 breezy 下同样有 main、restricted、universe 和 multiverse 子目录,它们的作用与 hoary 中的一样。 2.1.5 dapper 发行版 dapper 2006 年 6 月发布。提供了长达 3 年的支持,新版本以 Ubuntu 6.06 LTS(Long Term Support)(长期支持),它针对一些大组织的需求对桌面版和服务器版都做个一定程度上的增 强。新上载的软件包的物理存储位置为 pool 目录( pool 目录, 第 2.1.10 节)。在 dapper 下同样有 main、restricted、universe 和 multiverse 子目录,它们的作用与 hoary 中的一 样。 2.1.6 edgy 发行版 edgy 发行版反映了系统的最新开发进展。欢迎广大用户使用并测试这些软件包,同时也提 醒你们这些软件包还不完善。使用 edgy 发行版的好处就是你可以获得 Ubuntu 项目的最新更 新—不过新东西也会出新问题,你得好坏兼收:-)
2.1.7 Ubuntu发布版其它仓库 存在于 dists目录下的物理目录名,例如 breezy- updates和 breezy- security,就是“附 加的仓库。当某个 Ubuntu发行版处于维护阶段。将包的必要升级和安全更新放在附加的 仓库里。其附加仓库通常有**- updates、**- security、**- proposed、**- backports: 2.1.8已用过的发布版代号 已使用过的发行版代号有: Ubuntu4.10( The Warty Warthog)、 Ubuntu5.04( The Hoary Hedgehog), Ubuntu 5 10 Breezy Badger). Ubuntu 6-06(The Dapper Darke) 2.1.9发布版代号 · Warty Warthog多疣的疣猪 Hoary Hedgehog灰白的刺猬, breezy Badger活泼的獾 Dapper darke漂亮的鸭子 Edgy Eft躁动的蜥蜴 2.1.10pool目录 过去,软件包均放在 dists目录下相应发行版的子目录中。这种做法产生了许多问题,当镜 像站点进行新版本发布时大量带宽被消耗。 现在软件包均放进一个巨大的“池子(pool),按照源码包名称分类存放。为了方便管理 pool目录下按属性再分类(main、 restricted、 unIverse和 multiverse),分类下面再按 源码包名称的首字母归档。这些目录包含的文件有:运行于各种系统架构的二进制软件包 生成这些二进制软件包的源码包。 你可以执行命令apt- cache showsrc mypackagename,查看“ Directory:”行获知每个软件 包的存放位置。例如: apache软件包存放在pool/main/a/ apache/软件包存放在1ib*软件 包数量巨大,它们以特殊的方式归档:例如,1 epaper软件包存放在 pool/main/libp/libpaper/. 诸如apt等命令访问的索引文件仍位于 dists目录中。 通常,你大可不必注意这些,新版的apt和旧版dpkg-ftp会自动处理它们。 2.1.11发布源目录结构 在每个主目录树下( dists/ dapper/main、 dists/ dapper/ restricted、 dists/ dapper/ unl verse、 dists/ dapper/ multiverse/,等)按芯片架构又分了子目录,每 个子目录中存放着在该芯片架构下编译的二进制软件包 binary-amd64/AM64或EM64T架构 binary-i386/所有的使用 Intel/AMD/等处理器的PC, binary-powerpc/ Apple Macintosh G3, G4, FH G5 binary- sparc/ Sun ultraSparc系统 2.1.12源代码 8
8 2.1.7 Ubuntu 发布版其它仓库 存在于 dists 目录下的物理目录名,例如 breezy-updates 和 breezy-security,就是“附 加的仓库”。当某个 Ubuntu 发行版处于维护阶段。将包的必要升级和安全更新放在附加的 仓库里。其附加仓库通常有 ***-updates、***-security、***-proposed、***-backports。 2.1.8 已用过的发布版代号 已使用过的发行版代号有:Ubuntu 4.10 (The Warty Warthog)、 Ubuntu 5.04 (The Hoary Hedgehog)、 Ubuntu 5.10 (The Breezy Badger)、 Ubuntu 6-06 (The Dapper Darke)。 2.1.9 发布版代号 · Warty Warthog 多疣的疣猪, · Hoary Hedgehog 灰白的刺猬, · Breezy Badger 活泼的獾, · Dapper Darke 漂亮的鸭子, · Edgy Eft 躁动的蜥蜴 2.1.10 pool 目录 过去,软件包均放在 dists 目录下相应发行版的子目录中。这种做法产生了许多问题,当镜 像站点进行新版本发布时大量带宽被消耗。 现在软件包均放进一个巨大的“池子(pool)”,按照源码包名称分类存放。为了方便管理, pool 目录下按属性再分类(main、 restricted、universe 和 multiverse),分类下面再按 源码包名称的首字母归档。这些目录包含的文件有:运行于各种系统架构的二 进制软件包, 生成这些二进制软件包的源码包。 你可以执行命令 apt-cache showsrc mypackagename,查看“Directory:”行获知每个软件 包的存放位置。例如:apache 软件包存放在 pool/main/a/apache/软件包存放在 lib*软件 包数量巨大,它们以特殊的方式归档:例如,libpaper 软件包存放在 pool/main/libp/libpaper/。 诸如 apt 等命令访问的索引文件仍位于 dists 目录中。 通常,你大可不必注意这些,新版的 apt 和旧版 dpkg-ftp 会自动处理它们。 2.1.11 发布源目录结构 在每个主目录树下(dists/dapper/main、dists/dapper/restricted、 dists/dapper/universe、dists/dapper/multiverse/,等)按芯片架构又分了子目录,每 个子目录中存放着在该 芯片架构下编译的二进制软件包。 · binary-amd64/ AMD64 或 EM64T 架构 · binary-i386/ 所有的使用 Intel/AMD/等 处理器的 PC, · binary-powerpc/ Apple Macintosh G3, G4, 和 G5 · binary-sparc/ Sun UltraSPARC 系统 2.1.12 源代码
Ubuntu系统中的main, unlverse组件有源代码,不仅如此,许可证条款规定系统中所有的 程序必须和其源代码一起发行,或提供源代码出售。 通常源代码发布在 source目录,该目录同时处于所有架构目录中,更新的源码则在pool 目录中(参阅pool目录,第2.1.10节)。对于不太熟悉 Ubuntu归档目录结构的用户想 获得源代码可以试试apt- get source my packagename命令。 有些软件包,如着名的pine,由于许可证限制,只提供源码包。(最近,pine- tracker软件 包提供了一个简易的安装版)安装源码包的方法可参阅向系统引入软件包,第6.4.10节, 打包,第13.10节教你如何手工创建一个软件包。 restricted和 multiverse目录中的软件包可能不提供源代码,因为它们没有正式加入 Ubuntu 2.2 Ubuntu软件包管理系统 2.2.1 Ubuntu软件包概述 软件包通常包含了实现一系列相关命令或特性所必须的所有的文件。 Ubuntu软件包采用了 和 Debian相同的软件包格式,有两种类型的软件包 Binary packages(二进制软件包),它包含可执行文件、配置文件、man/info页面 版权声明和其它文档。这些软件包以 Ubuntu特定的格式发布(参阅 Ubuntu软件 包格式,第2.2.2节);它们通常使用.deb的扩展名以示区别。这种二进制软件包 可使用 Ubuntu工具dpkg解包,详情见有关帮助页面。 Source packages(源码包),包含一个.dsc文件它用于描述源码包(包括下列文件 的名称),一个.orig.tar.gz文件它是未经修改的原始源代码压缩文件,以及 个.diff.gz文件它包含了该软件包 Ubuntu化时所做的修改。dpkg- source工具可 用于打包/解包 Ubuntu源码包,详情可参阅有关帮助页面。 软件包管理系统安装的软件包时需要使用“倚赖关系”,它由软件包维护者声明。这些信息 记录在与每个软件包关联的 control文件中。例如,包含GNUC编译器(gc)的软件包依 赖于包含链接器和汇编器的 binutils软件包。如果用户试图在没有安装 binutils的情况下 安装gcc,软件包管理系统(dpkg)将会显示一条错误信息,告诉你需要安装 binutils, 并停止安装gcc。(不过,倔强的用户可以对这个信息视而不见,参阅dpkg(8)。)更多信 息,参阅下面的章节软件包依赖关系,第2.2.8节 Ubuntu软件包管理工具可用于: 操作和管理软件包或软件包的局部内容, 帮助那些使用有限容量载体如软盘传输的用户分割软件包, 帮助开发者将开发文件打包成软件包, ·帮助用户从远程 Ubuntu文档站点安装软件包。 2.2.2 Ubuntu软件包格式 Ubuntu“软件包”,或称之为 Debian包文件( Debian archive file),包含了可执行文 件、库文件、和相关程序的文档。通常 Ubuntu文件的文件名以.deb结尾。 Ubuntu二进制软件包内部格式描述见deb(5)帮助页面。所以要操作.deb文件请参阅dpkg- deb(8)
9 Ubuntu 系统中的 main,universe 组件有源代码,不仅如此,许可证条款规定系统中所有的 程序必须和其源代码一起发行,或提供源代码出售。 通常源代码发布在 source 目录,该目录同时处于所有架构目录中,更新的源码则在 pool 目录中(参阅 pool 目录, 第 2.1.10 节)。对于不太熟悉 Ubuntu 归档目录结构的用户想 获得源代码可以试试 apt-get source mypackagename 命令。 有些软件包,如着名的 pine,由于许可证限制,只提供源码包。(最近,pine-tracker 软件 包提供了一个简易的安装版)安装源码包的方法可参阅 向系统引入软件包, 第 6.4.10 节, 打包, 第 13.10 节教你如何手工创建一个软件包。 restricted 和 multiverse 目录中的软件包可能不提供源代码,因为它们没有正式加入 Ubuntu 系统。 2.2 Ubuntu 软件包管理系统 2.2.1 Ubuntu 软件包概述 软件包通常包含了实现一系列相关命令或特性所必须的所有的文件。Ubuntu 软件包采用了 和 Debian 相同的软件包格式,有两种类型的软件包: · Binary packages(二进制软件包),它包含可执行文件、配置文件、man/info 页面 、 版权声明和 其它文档。这些软件包以 Ubuntu 特定的格式发布(参阅 Ubuntu 软件 包格式, 第 2.2.2 节);它们通常使用.deb 的扩展名以示区别。这种二进制软件包 可使用 Ubuntu 工具 dpkg 解包,详情见有关帮助页面。 · Source packages(源码包),包含一个.dsc 文件它用于描述源码包(包括下列文件 的名称),一个. orig.tar.gz 文件它是未经修改的原始源代码压缩文件,以及一 个.diff.gz 文件它包含了该软件包 Ubuntu 化时所做的修改。dpkg-source 工具可 用于打包/解包 Ubuntu 源码包,详情可参阅有关帮助页面。 软件包管理系统安装的软件包时需要使用“倚赖关系”,它由软件包维护者声明。这些信息 记录在与每个软件包关联的 control 文件中。例如,包含 GNU C 编译器(gcc)的软件包依 赖于包含链接器和汇编器的 binutils 软件包。如果用户试图在没有安装 binutils 的情况下 安装 gcc,软件包管理 系统(dpkg)将会显示一条错误信息,告诉你需要安装 binutils, 并停止安装 gcc。(不过,倔强的用户可以对这个信息视而不见,参阅 dpkg (8))。)更多信 息,参阅下面的章节 软件包依赖关系, 第 2.2.8 节。 Ubuntu 软件包管理工具可用于: · 操作和管理软件包或软件包的局部内容, · 帮助那些使用有限容量载体如软盘传输的用户分割软件包, · 帮助开发者将开发文件打包成软件包, · 帮助用户从远程 Ubuntu 文档站点安装软件包。 2.2.2 Ubuntu 软件包格式 Ubuntu “软件包”,或称之为 Debian 包文件( Debian archive file),包含了可执行文 件、库文件、和相关程序的文档。通常 Ubuntu 文件的文件名以.deb 结尾。 Ubuntu 二进制软件包内部格式描述见 deb(5)帮助页面。所以要操作.deb 文件请参阅 dpkgdeb(8)
2.2.3 Ubuntu软件包命名约定 Ubuntu软件包命名遵循下列约定 foo ver-rev arch deb 般这里的foo是软件包的名称,ver是软件本身的版本号,rev是 Ubuntu修订版本号 arch是目标架构名称。当然,文件很容易被改名;不过,你也可以通过运行下面的命令来找出 文件fi1 ename实际是那个软件包 fo filename Ubuntu修订版本号由 Ubuntu开发者或创建这个软件包的人指定。通常,包被修改过之後, 会把修改版本号加一,有些也会加上 ubuntu的标志以便和 Debian区分开来 2.24保存本地配置 有可能被本机管理员修改的文件保存在/etec/目录中。 Ubuntu策略中规定所有对本地配置 文件的修改都可以在软件包升级过程中被保留下来。 在软件包的发布中,如果包含默认的本地配置文件,这个文件就被称为“ conffile”(默认 配置)。如果不得到管理员的允许,软件包管理系统不会对上次安装之後被修改过的默认 配置进行升级:不过,如果管理员没有改动过默认配置,那么它就会被升级成最新软件包中 的版本。这种策略几乎总是合理的,它有益于把默认配置的改动减到最小 下面的命令可以列出一个软件包中包含那些默认配置文件 dpkg --status package 文件列表位于“ Conffiles”的後面。 在《 Ubuntu策略手册》的“配置文件”一节,可以获得有关 conffile(默认配置)文件 的更多信息(参见参考资料,第15.1节)。 225 Ubuntu维护脚本 Ubuntu维护脚本是一种可执行脚本,它在软件包安装之前或之後自动运行。它和一个名叫 control的文件一起组成 Ubuntu包文件的“管理”部分。 这些文件是 prensa:在 Ubuntu包文件解包之前,运行这个脚本。许多“ preinst”脚本的任务是停 止作用于待升级软件包的服务,直到软件包安装或升级完成。 postnet∷:该脚本的任务是完成 Debian包文件解包文件的配置工作。通常,“ postinst 脚本等待用户输入,或提醒用户,如果他接受当前默认值,要记得软件包安装完後返回重新 配置。许多“ postnet”脚本负责执行有关命令为新安装或升级的软件重启服务。 preri:该脚本负责停止与软件包关联的 daemon服务。它在删除软件包关联文件之前执行 poster∷:该脚本负责修改软件包链接或文件关联,或删除由它创建的文件。(参阅虚拟软件
10 2.2.3 Ubuntu 软件包命名约定 Ubuntu 软件包命名遵循下列约定: foo_ver-rev_arch.deb 一般这里的 foo 是软件包的名称,ver 是软件本身的版本号,rev 是 Ubuntu 修订版本号, arch 是目标架构名称。当然,文件很容易被改名;不过,你也可以通过运行下面的命令来找出 文件 filename 实际是那个软件包: dpkg --info filename Ubuntu 修订版本号由 Ubuntu 开发者或创建这个软件包的人指定。通常,包被修改过之後, 会把修改版本号加一,有些也会加上 ubuntu 的标志以便和 Debian 区分开来。 2.2.4 保存本地配置 有可能被本机管理员修改的文件保存在/etc/目录中。 Ubuntu 策略中规定所有对本地配置 文件的修改都可以在软件包升级过程中被保留下来。 在软件包的发布中,如果包含默认的本地配置文件,这个文件就被称为“conffile”(默认 配置)。如果不得到管理员的允许,软件包管理 系统不会对上次 安装之後被修改过的默认 配置进行升级;不过,如果管理员没有改动过默认配置,那么它就会被升级成最新软件包中 的版本。这种策略几乎总是合理的,它有益于把 默认配置的改动减到最小。 下面的命令可以列出一个软件包中包含那些默认配置文件: dpkg --status package 文件列表位于“Conffiles”的後面。 在《 Ubuntu 策略手册》的“配置文件”一节,可以获得有关 conffile(默认配置)文件 的更多信息(参见 参考资料, 第 15.1 节 )。 2.2.5 Ubuntu 维护脚本 Ubuntu 维护脚本是一种可执行脚本,它在软件包安装之前或之後自动运行。它和一个名叫 control 的文件一起组成 Ubuntu 包文件的“管理”部分。 这些文件是: preinst:: 在 Ubuntu 包文件解包之前,运行这个脚本。许多“preinst”脚本的任务是停 止作用于待升级软件包的服务,直到软件包安装或升级完成。 postinst:: 该脚本的任务是完成 Debian 包文件解包文件的配置工作。通常,“postinst” 脚本等待用户输入,或提醒用户,如果他接受当前默认值,要记得软件包安装完後返回重新 配置。许多 “postinst”脚本负责执行有关命令为新安装或升级的软件重启服务。 prerm:: 该脚本负责停止与软件包关联的 daemon 服务。它在删除软件包关联文件之前执行。 postrm:: 该脚本负责修改软件包链接或文件关联,或删除由它创建的文件。(参阅虚拟软件 包, 第 2.2.7 节)