目录 第1章-序言. 4 1.1官方文档 1.2文档约定. 1.3脚本样例 1.4基本设置 1.5 Ubuntu发行版( distributions)基本概念 第2章- Ubuntu基础 6 2.1 Ubuntu文件 6 2.2 Ubuntu软件包管理系统..9 2.3 Ubuntu系统升级 2.4 Ubuntu系统引导进程. 2.5多样性支持. 2.6国际化 2.7 Ubuntu和系统内核 第3章- Ubuntu系统安装提示.. 3.1常规 Linux安装提示. 3.2Bash设置....26 3.3鼠标设置. 3.4NFS设置 3.5 Samba设置.. 3.6打印机设置..3 3.7桌面PC的CRON 3.8其它主机安装提示 第4章- Ubuntu指南. 4.1开始了. 34 4.2 Midnight Commander (MC) 4.3类Unix工作环境 39 4.4类Unix文本处理.. 49 4.5类Unix文件系统 4.6X窗口系统 4.7进一步学习. 第5章一发行版升级到 Breezy、 Dapper或Edgy 5.1升级到 Hoary... 5.2准备升级工作 ...61 5.3升级 第6章- Ubuntu软件包管理. 6.1介绍 6.2 Ubuntu软件包管理基础. 6.3 Ubuntu生存命令 .67 6.4 Ubuntu必杀技 70 5其他 Ubuntu的特性 第7章- Ubuntu下的 Linux内核..78 7.1内核编译
1 目录 第 1 章 - 序言......................................................4 1.1 官方文档................................................4 1.2 文档约定................................................4 1.3 脚本样例................................................5 1.4 基本设置................................................5 1.5 Ubuntu 发行版(distributions)基本概念..................5 第 2 章 - Ubuntu 基础...............................................6 2.1 Ubuntu 文件.............................................6 2.2 Ubuntu 软件包管理系统...................................9 2.3 Ubuntu 系统升级........................................14 2.4 Ubuntu 系统引导进程....................................16 2.5 多样性支持.............................................17 2.6 国际化.................................................17 2.7 Ubuntu 和系统内核......................................17 第 3 章 - Ubuntu 系统安装提示......................................19 3.1 常规 Linux 安装提示....................................19 3.2 Bash 设置..............................................26 3.3 鼠标设置...............................................26 3.4 NFS 设置...............................................29 3.5 Samba 设置.............................................29 3.6 打印机设置.............................................30 3.7 桌面 PC 的 CRON........................................31 3.8 其它主机安装提示.......................................31 第 4 章 - Ubuntu 指南.............................................. 34 4.1 开始了.................................................34 4.2 Midnight Commander (MC)................................37 4.3 类 Unix 工作环境.......................................39 4.4 类 Unix 文本处理.......................................49 4.5 类 Unix 文件系统.......................................52 4.6 X 窗口系统.............................................59 4.7 进一步学习.............................................60 第 5 章 - 发行版升级到 Breezy、Dapper 或 Edgy......................60 5.1 升级到 Hoary...........................................61 5.2 准备升级工作...........................................61 5.3 升级...................................................61 第 6 章 - Ubuntu 软件包管理........................................62 6.1 介绍...................................................63 6.2 Ubuntu 软件包管理基础..................................64 6.3 Ubuntu 生存命令........................................67 6.4 Ubuntu 必杀技..........................................70 6.5 其他 Ubuntu 的特性.....................................76 第 7 章 - Ubuntu 下的 Linux 内核................................... 78 7.1 内核编译...............................................78
7.2模块化的2.4内核.80 7.3通过proc文件系统调整内核 7.42.6版内核和udev 84 第8章- Ubuntu小技巧. 8.1启动系统 8.2活动记录 8.3拷贝及创建子目录 8.4差异备份与数据同步 8.5系统冻结恢复. 91 8.6记住这些可爱的小命令. 91 8.7需要注意的典型错误. 107 第9章- Ubuntu系统微调. 107 9.1系统初始化 9.2访问限制( Restricting access). 9.3刻录机 112 9.4X. 9.5SSH..... 9.6邮件 133 9.7本地化(10 calization) 9.8多语言化( Multilingualization,m17n) 145 第10章-网络设置 146 10.1IP网络设置基础 10.2底层网络设置 10.3命名主机 10.4域名服务(DNS) 153 10.5使用DHCP来配置网络接口..155 10.6 Debian的高级网络设置....156 10.7处理内核对接口命名的不一致性 161 10.8启动( triggering)网络设置 10.9多阶段( Multi-stage)映射 165 10.10网络服务设置.166 10.11网络故障排除...168 10.12建立路由网关 第11章一编辑器. 11.1流行的编辑器 11.2应急的编辑器 172 11.3 Emacs和vim 172 第12章一系统版本控制. 177 12.1并行版本系统(CVS) 177 12.2 Subversion 第13章一编程. 13.1从哪儿开始. 13. 2 Shell 13. 3 Awk
2 7.2 模块化的 2.4 内核......................................80 7.3 通过 proc 文件系统调整内核.............................83 7.4 2.6 版内核和 udev......................................84 第 8 章 - Ubuntu 小技巧............................................84 8.1 启动系统...............................................84 8.2 活动记录...............................................87 8.3 拷贝及创建子目录.......................................88 8.4 差异备份与数据同步.....................................90 8.5 系统冻结恢复...........................................91 8.6 记住这些可爱的小命令...................................91 8.7 需要注意的典型错误....................................107 第 9 章 - Ubuntu 系统微调......................................... 107 9.1 系统初始化............................................107 9.2 访问限制(Restricting access)........................109 9.3 刻录机................................................112 9.4 X.....................................................116 9.5 SSH...................................................130 9.6 邮件..................................................133 9.7 本地化(localization)................................137 9.8 多语言化(Multilingualization, m17n).................145 第 10 章 - 网络设置...............................................146 10.1 IP 网络设置基础......................................146 10.2 底层网络设置.........................................148 10.3 命名主机.............................................153 10.4 域名服务(DNS)........................................153 10.5 使用 DHCP 来配置网络接口.............................155 10.6 Debian 的高级网络设置................................156 10.7 处理内核对接口命名的不一致性.........................161 10.8 启动(triggering)网络设置.............................162 10.9 多阶段(Multi-stage)映射..............................165 10.10 网络服务设置........................................166 10.11 网络故障排除........................................168 10.12 建立路由网关........................................168 第 11 章 - 编辑器.................................................171 11.1 流行的编辑器.........................................171 11.2 应急的编辑器.........................................172 11.3 Emacs 和 Vim..........................................172 第 12 章 - 系统版本控制...........................................177 12.1 并行版本系统 (CVS)...................................177 12.2 Subversion...........................................181 第 13 章 - 编程...................................................183 13.1 从哪儿开始...........................................183 13.2 Shell................................................183 13.3 Awk..................................................188
13.4Perl.......,,,,,,,,,,,,,, 13. 5 Python 13. 6 Make 13.7C. 8 Web 3.9准备文档..197 13.10打包.200 第14章- GnuPG .201 14.1安装 GnuPG 201 14.2使用 GnuPG. 202 14.3管理 GnuPG. 14.4在应用程序中使用 GnuPG 203 第15章- Ubuntu技术支持 203 15.1参考资料...203 15.2查词意.208 15.3查找流行的 Debian软件包 ..208 15.4 Debian bug跟踪系统...... 208 15.5邮件列表....208 15. 6 Internet Relay Chat (IRC) 208 15.7搜索引擎 209 15.8网站 209 附录A-附录 A.1作者 A.2保证. 213 A.3反馈. 213 A.4文档格式.....213 A.5 Debian迷宫 .,,,,,,,,,,,,,,,,,,,,,,.,213 A.6 Debian引言 来源 214
3 13.4 Perl.................................................189 13.5 Python...............................................190 13.6 Make.................................................191 13.7 C....................................................192 13.8 Web..................................................196 13.9 准备文档.............................................197 13.10 打包................................................200 第 14 章 - GnuPG..................................................201 14.1 安装 GnuPG...........................................201 14.2 使用 GnuPG...........................................202 14.3 管理 GnuPG...........................................202 14.4 在应用程序中使用 GnuPG...............................203 第 15 章 - Ubuntu 技术支持........................................203 15.1 参考资料.............................................203 15.2 查词意...............................................208 15.3 查找流行的 Debian 软件包.............................208 15.4 Debian bug 跟踪系统..................................208 15.5 邮件列表.............................................208 15.6 Internet Relay Chat (IRC)............................208 15.7 搜索引擎.............................................209 15.8 网站.................................................209 附录 A - 附录.....................................................210 A.1 作者..................................................210 A.2 保证..................................................213 A.3 反馈..................................................213 A.4 文档格式..............................................213 A.5 Debian 迷宫...........................................213 A.6 Debian 引言...........................................214 来源......................................................214
第1章-序言 本书《 Ubuntu参考手册》的目的是对整个 Ubuntu系统作一个全面的介绍,提供一本 安装之後的”用户使用手册。本手册的读者应该愿意阅读 shell脚本( scripts)。我也 假定读者在阅读之前已经具备了类Unix系统的基本操作技能 我决定不在本书中解释所有的细节,因为你可以在 manual页、info页或HoWT0文档 中获得这些信息。我希望能给读者提供实用的信息,而非全面的解释。因此我会在正文中给 出实际的命令序列,或是在 examples/给出脚本示例作为参考。在按照这些示例下达命令 之前,你必须要先理解其内容的含义。实际的命令序列可能会依你的系统的具体情况而有细 微的差别 书中的很多信息实际上是对在参考资料,第15.1节中列出的众多权威参考文献的引用 和提示 本书最初是作为一本“快速参考手册”来写的,但是现在增加了很多内容。尽管如此,保持 文字简短紧凑( keep it short and simple,KISS)是我的指导思想。 如果你是在寻找紧急情况下系统维护方面的帮助,请直接阅读 Ubuntu生存命令,第6.3 1.1官方文档 本书的最新官方版本可在http://wiki.ubuntuorgcn/ubuntuManual/访问到。 1.2文档约定 文中许多信息通过简短的bash命令给出,以下是其排版格式约定: # command in root account root用户命令 s command in user account普通用户命令 . description of action命令动作描述 这些 shell命令的例子使用Ps2="".更多信息参见Bash-GNU标准交互式she11,第 13.2.1节。 参考 bash(1)表示Unix风格 manua1页 info libc表示 GNU TEXIN0信息 The C Programming Language表示参考书目。 http://www.debianorg/doc/manuals/debian-reference表示URL。 /usr/ share/doc/ Debian/ reference/表示系统的文件 文中用到了下列缩写 Ldp:LinuxDocumentationProject(http://www.tldp.org Ddp:DebianDocumentationprOject(http://www.debianorg/docd
4 第 1 章 - 序言 本书《Ubuntu 参考手册》的目的是对整个 Ubuntu 系统作一个全面的介绍,提供一本 “安装之後的”用户使用手册。本手册的读者应该愿意阅读 shell 脚本(scripts)。我也 假定读者在阅读之前已经具备了类 Unix 系统的基本操作技能。 我决定不在本书中解释所有的细节,因为你可以在 manual 页、info 页或 HOWTO 文档 中获得这些信息。我希望能给读者提供实用的信息,而非全面的解释。因此我会在正文中给 出实际的命令序列,或是在 examples/ 给出脚本示例作为参考。在按照这些示例下达命令 之前,你必须要先理解其内容的含义。实际的命令序列可能会依你的系统的具体情况而有细 微的差别。 书中的很多信息实际上是对在 参考资料, 第 15.1 节 中列出的众多权威参考文献的引用 和提示。 本书最初是作为一本“快速参考手册”来写的,但是现在增加了很多内容。尽管如此,保持 文字简短紧凑(keep it short and simple, KISS)是我的指导思想。 如果你是在寻找紧急情况下系统维护方面的帮助,请直接阅读 Ubuntu 生存命令, 第 6.3 节。 1.1 官方文档 本书的最新官方版本可在 http://wiki.ubuntu.org.cn/UbuntuManual/ 访问到。 1.2 文档约定 文中许多信息通过简短的 bash 命令给出,以下是其排版格式约定: # command in root account root 用户命令 $ command in user account 普通用户命令 ... description of action 命令动作描述 这些 shell 命令的例子使用 PS2=" "。 更多信息参见 Bash – GNU 标准交互式 shell, 第 13.2.1 节。 参考: · bash(1) 表示 Unix 风格 manual 页。 · info libc 表示 GNU TEXINFO 信息。 · The C Programming Language 表示参考书目。 · http://www.debian.org/doc/manuals/debian-reference/ 表示 URL。 · /usr/share/doc/Debian/reference/ 表示系统的文件。 文中用到了下列缩写: · LDP: Linux Documentation Project (http://www.tldp.org/) · DDP: Debian Documentation Project (http://www.debian.org/doc/)
本文中的其它缩写会在使用前定义 文中只提供了LDP文档的URL,然而,LDP文档已经被 Ubuntu打包。当这些包被安装後 LDP文档会在/usr/ share/doc/ HOWTO/里。 参阅参考资料,第15.1节。 1.3脚本样例 本文档的脚本样例需要通过网页访问下载。 1.4基本设置 如果你的系统是最小安装,但你希望充分使用本文档,请执行下面的命令来安装其它软件 包,这些软件包含有一些有用的文档 apt-get install info man-db doc-base help aptapt -utils auto -apt v dpkg less mc ssh nano-tiny elvis-tiny vim sash kernel-package manpages manpages-dev doc-debian doc-linux-text debian-policy developers-reference maint-guide apt-howto harden-doc install-doc libpam-doc glibc-doc samba-doc exim-doc cvsbook apt-get install debian-reference for Sarge, do this too 对于 Woody版,把exim-doc-html增加到上面的列表中。对于 Sarge版,请使用exim4- doc-html和exim4-doc-info来代替exim-doc包 1.5 Ubuntu发行版( distributions)基本概念 Ubuntu软件仓库包含上千个软件包,它们按照我们提供的基础等级和是否符合自由软件哲 学,被分成四种组件,即“main'(主要)、“ restricted(受限)、“ unl verse"(公共)和 multiverse”(多元化)。 Ubuntu软件仓库被分成四组,“main”,“ restricted"、“ unl verse”和“ multiverse',按 照我们所能提供的基础能力以及它们是否符合自由软件哲学来划分 标准 Ubuntu安装都采用main和 restricted的软件。你可以通过 Synaptic软件管理器和 Aptitude软件包管理器安装其他的软件。通过编辑/etc/apt/ sources.list文件,就可以 得到它们。如果要编辑 sources.list,请使用“ man sources.list”来获得更多信息。 Ubuntu发行版有代码名称,具体描述在 Ubuntu发布版代号,第2.1.7节中。 Warty在 2004年10月发布,在 Warty发布後,三个发行版对应为 Hoary、 Breezy和 Dapper 订阅低流量的邮件列表ubuntu-holists.ubuntu.com可以得到关于ubuntu的重要声明 信息。参阅 Debian文件,第2.1节。 如果你想使用比发行版自带软件包更新的软件包版本,你可以按照发行版升级到 Hoary Breezy或 Dapper,第5章的描述,升级到一个新的发行版;或者你只升级选择的软件
5 本文中的其它缩写会在使用前定义。 文中只提供了 LDP 文档的 URL,然 而 ,LDP 文档已经被 Ubuntu 打包。 当这些包被安装後 , LDP 文档会在 /usr/share/doc/HOWTO/ 里。 参阅 参考资料, 第 15.1 节。 1.3 脚本样例 本文档的 脚本样例 需要通过网页访问下载。 1.4 基本设置 如果你的系统是最小安装,但你希望充分使用本文档, 请执行下面的命令来安装其它软件 包,这些软件包含有一些有用的文档。 # apt-get install info man-db doc-base dhelp apt apt-utils auto-apt \ dpkg less mc ssh nano-tiny elvis-tiny vim sash \ kernel-package \ manpages manpages-dev doc-debian doc-linux-text \ debian-policy developers-reference maint-guide \ apt-howto harden-doc install-doc \ libpam-doc glibc-doc samba-doc exim-doc cvsbook \ gnupg-doc # apt-get install debian-reference # for Sarge, do this too :) 对于 Woody 版,把 exim-doc-html 增加到上面的列表中。 对于 Sarge 版,请使用 exim4- doc-html 和 exim4-doc-info 来代替 exim-doc 包。 1.5 Ubuntu 发行版(distributions)基本概念 Ubuntu 软件仓库包含上千个软件包,它们按照我们提供的基础等级和是否符合自由软件哲 学,被分成四种组件,即“main”( 主 要 )、“restricted”( 受 限 )、“universe”(公共)和 “multiverse”(多元化)。 Ubuntu 软件仓库被分成四组,“main”、“restricted”、“universe”和“multiverse”,按 照我们所能提供的基础能力以及它们是否符合 自由软件哲学 来划分。 标准 Ubuntu 安装都采用 main 和 restricted 的软件。你可以通过 Synaptic 软件管理器和 Aptitude 软件包管理器 安装其他的软件。通过编辑/etc/apt/sources.list 文件,就可以 得到它们。如果要编辑 sources.list,请使用“man sources.list”来获得更多信息。 Ubuntu 发行版有代码名称,具体描述在 Ubuntu 发布版代号, 第 2.1.7 节 中。 Warty 在 2004 年 10 月发布, 在 Warty 发布後,三个发行版对应为 Hoary、 Breezy 和 Dapper。 订阅低流量的邮件列表 ubuntu-zh@lists.ubuntu.com, 可以得到关于 ubuntu 的重要声明 信息。 参阅 Debian 文件, 第 2.1 节。 如果你想使用比发行版自带软件包更新的软件包版本, 你可以按照 发行版升级到 Hoary、 Breezy 或 Dapper, 第 5 章 的描述,升级到一个新的发行版; 或者你只升级选择的软件
包。如果该软件包不能够容易的升级,你可以按照向 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 节)