用Debian APT提高软件管理效率

ZDNet软件频道 时间:2006-10-24 作者:Techrepublic.com.com |  我要评论()
本文关键词:Debian Linux Advanced Package Tool APT Windows
任何Linux发行版本的典型特性之一是其官方软件管理系统。DEB包格式帮助定义了Debian GNU/Linux发行版本。本文讨论的是Debian Linux高级打包工具的优点。
任何Linux发行版本的典型特性之一是其官方软件管理系统。在许多记录中,就像RPM某种程度上定义了Red Hat Linux一样,DEB包格式帮助定义了Debian GNU/Linux发行版本。本文讨论的是Debian Linux高级打包工具(Advanced Package ToolAPT)的优点。

美国经济中的基本流通单位是美元。当然,还有更小命名的货币单位,但是不再有人用硬币买东西。你也无法用一美元买更多东西,而通常你需要花若干美元完成一次采购。同样地,许多操作系统环境的基本软件单元是包(package)。有比大多数包更小的程序,而且在一个单独的包中,其中一些可能被绑在一起的,例如收集在名为Debian sysutils包中的系统工具集合。也有大量被其它包依赖的包:你不能只安装包A,因为它需要包B,C和D才能工作。

在九十年代中期,被通俗地称为“依赖地狱(dependency hell)”的情形对某些操作系统并不常见。使用Red Hat包管理程序系统(Red Hat Package Manager system,RPM)和微软的动态链接库系统(Dynamic Link Library,DLL)开发包的派生的两个特殊的例子是:RPM Hell和DLL Hell。就像这些有趣的,同时可能也是潜在的、令人讨厌的名称所暗示的,许多人在日益复杂的操作系统中发现了很多令人沮丧的软件依赖问题。

包管理程序的开发是为解决缺乏统一的包管理系统时的依赖问题和软件安装困难的问题。在微软Windows和苹果Mac OS专利系统中,根据现有平台上软件集成的信息,每个单独的第三方软件开发者独立地选择并实现他们自己的软件安装方法,而基于Linux操作系统的开源软件开发者通常只需要编写软件本身。那样的话,各种Linux发行版本的包维护人员从源码为这些应用程序创建二进制软件包。然后绑定在发行版本中,置于在线文档,或为个人提供下载,通过包管理程序来安装它们。

Debian软件管理的发展简史
由其奠基人Ian Murdock和它的妻子(当时是他的女友)Debra命名的Debian公布于1993年8月。Debian是现存的第二老的Linux发行版本。然而,在1994年1月也就是首个发行版本诞生五个月之后,官方第一次发行的Debian版本中出现的二进制包系统被确定为Debian 0.91。当时Debian 0.91在其早期开发阶段是一个原始的工具,几乎没有Debian开发者最初预想到所有用手工处理的软件管理能通过使用源码文件处理,然而它就在这种环境中发展起来。

Debian 0.93r5的发布在Red Hat Linux 2.0之前不到半年,它标志了dpkg包管理程序的发布,或许使Debian成为现有最老的Linux包管理系统,也是从那时起Debian发行版本的包管理工具。Debian 0.93r6增加了dselect,目的是成为一个用户友好的dpkg前端,尽管许多人没有感觉到它的友好。

最初的二进制包格式被指定为由Debian提供工具,但是不久之后Debian包格式用ar文件档案格式彻底改造,所以其内容可以开放并且在任何标准Unix系统上,使用标准的,可信的工具都可进行检查,例如ar和tar文件存档工具。

从最初开始,deb包格式被设计为支持依赖和冲突跟踪,而且Debian计划坚持严格的包维护规则以确保在终端用户拿到软件之前依赖问题已被解决和最小化。作为最稳定的Linux发行版本之一,Debian GNU/Linux赢得的良好声誉很大程度归功于此。

deb包格式因广泛的、易于使用、软件管理而拥有声誉。这个声誉随着1999年3月和Debian 2.1“Slink”一起发布的高级包工具或APT命令行工具而进一步提高。APT是Debian GNU/Linux的典型特征,而且是诸如Knoppix和Ubuntu这样的发行版本的起源。

Debian发行版本的组织
2000年,在Debian 3.0 “Woody”的开发过程中,我们看到由Debian维护的软件包的中心知识库开始重组。最后,这个重组导致现行的稳定版本(Stable),测试版本(Testing),不稳定版本(Unstable)的和实验发行版本(Experimental distributions)被大多数Debian用户所熟悉。

尽管稳定的分支是Debian计划严格测试过程的最终目标,而且只有达到一个稳定点,即能被移到稳定版的配置将能获得一个分配给它的官方发布的编号,但是许多Debian用户每天使用测试的,甚至是不稳定版也没有出现负面影响。某些人可能会说Debian稳定版有最佳配合的特定用法,但是在类似于公司的产品环境配置中,测试版或不稳定版的效果更好。尽管其名称或许有些让人担心,但是Debian的不稳定版和其它Linux发行版本的稳定版一样可靠和便于应用。

Debian GNU/Linux发行版本的三个主要分支由发行版所经历的测试包的数量定义:

  • 在任何给定的时期内都有几个Debian GNU/Linux的实验发行版本,一旦打包的软件版本充分测试以确保它没有明显的缺点,它就被移到不稳定版。

  • 在不稳定版中,将测试不稳版中其余部分的兼容性和可靠性。十天后或所有问题被解决之后,如果在此期间没有出现其它问题,包被移到测试版。

  • 测试版是已确定为最终移到稳定版软件的beta测试环境。随着时间的推移,新软件被添加进来并扩展其稳定性,可靠性和互用性测试。最后,新软件的增加被停止,注意力转移到解决最后的问题。一旦Debian核心小组对当前的全面测试表示满意,处于冻结状态的测试发行版本被直接移到稳定版。大多数家庭桌面Debian用户发现测试版非常适合他们的需要。

  • Debian稳定版被授予一个发行版本号。Debian稳定包只增加程序缺陷和安全更新,稳定版是产品服务器环境最普遍使用的Debian发行版本分支,坚如磐石的稳定性和可靠性是极为重要的。

    在日常维护中使用APT系统
    在命令行软件管理中,大多数Debian用户应该使用的三个工具是——APT-cache,APT-get和debfoster。

    1.APT-cache是用来搜索可用包信息的工具。之所以称为“APT-cache”是因为它和一个本地存储的Debian文档内容缓存一起工作。APT-cache工具可以在标准系统配置下由普通用户帐号运行。有几个Debian系统管理员频繁使用的APT-cache命令:

  • APT-cache search string,其中“string”是搜索条件,它将显示一个包名称列表,列表上显示缓存中,名称或包的描述包含该条件的包名称。搜索条件并不区分大小写,所以你不需要在使用该命令时注意大小写。

    可以使用多个搜索条件,在这种情况下该命令将显示包含所有指定搜索条件的包列表。如果你想让指定的条件出现在名称中或其名称由APT-cache search显示的简短的一行包描述中,你可以通过输入APT-cache search string1 | grep string2将该命令和grep结合起来。在这种情况下,string1作用如上所述,但是在APT-cache search的简要输出中只有匹配string2的结果才会显示,和string1不同,string2是区分大小写的。这种方式可以通过使用grep对如manpage所描述的命令行选项进行修改。

  • APT-cache show package,其中“package”是特定包的名称,将显示一个比APT-cache search更完整的特定软件包的描述。共同的是对包使用APT-cache search执行一次特定的搜索任务,然后使用APT-cache show读取更多相关信息。这条命令将提供以下信息:包大小,安装了哪些软件,如果你使用APT安装它,那么哪些其它软件将被自动安装,以及其它更深入的信息。

  • APT-cache-h提供一条有关APT-cache工具用法信息的简短帮助消息。

    2.APT-get被用来和软件档案进行通信并且完成安装和卸载任务。之所以被称为“APT-get”是因为它通常需要从档案中“获取”包以完成相应的任务,还因为它具有在系统范围内改变软件的能力,所以APT-get在标准系统配置下只能由root帐号使用。和APT-cache一样,这个工具提供了几个Debian系统管理员经常用到的命令:

  • APT-get install package被用来从Debian软件档案中安装程序,其中“package”是被安装的软件包名称。APT系统自动解决依赖问题并且监管完成其它安装所需要的包。如果解决“依赖问题”需要删除和添加任何其它包,APT-get将给出需要进行这种改变的列表并向你询问是否继续。可能每次有多于一个包被安装,则只简单列出更多的包名称,以空格隔开,例如APT-get install package1 package2 package3。如果你想了解发生了什么,你可以用-s选项模拟一次安装操作,而无需做一次实际的安装。这样做,只需输入一条类似APT-get-s install package的命令。

  • APT-get remove package和APT-get install所做的事情正好相反。不是安装而是卸载;是删除依赖于它的包。通过使用-purge命令行选项,例如APT-get --purge remove package,它甚至会删除已经被卸载的指定包的配置文件。

  • APT-get update对用来进行APT-cache操作的缓存执行一次更新,所以大部分最近的软件档案状态都被用到。过去的许多APT-get update操作会在硬盘上制造一些不必要的混乱,因为老的缓存数据被留下来,尽管数量没有达到多数系统管理员会注意的程度。然而,APT-get autoclean提供一种快速而简单的清除这种混乱的方法,而且如果你想尽可能地不浪费硬盘容量,每次更新缓存之后使用它是个好习惯。

  • APT-get upgrade检查系统范围内的包档案以确定档案中哪些软件已经有了更新。然后提供可以进行什么修改的列表并询问是否进行升级。定期甚至是每天执行该命令是个好习惯,以确保没有错过安全补丁——但是如果你最近没有执行一次APT-get update,你的本地缓存将显示没有新内容,所以在APT-get update之后最好立即使用APT-get upgrade以确保本地缓存包括大部分最新的软件档案。

  • APT-get-h向用户给出一条简短的帮助消息,和APT-cache中的-h选项一样。

    3.debfoster作为APT-get和APT-cache二者的前端,将这两者的功能统一起,以完成一些特殊操作。它维护着一个系统中由APT管理的安装软件数据库,并且允许简单查看和管理已安装的软件。

    尽管它是一个非常有用的工具,但它不是核心APT工具集的一部分,所以在许多情况下,必须使用APT-get install命令将它单独安装在你的系统上。当在命令行输入debfoster时,它通过APT管理的主要软件包检查并且询问你下一步的操作。除此之外,还将给出它依赖的其它已安装包的列表。在每种情况中,你可以进行几类响应中的一种,其中几个常见的响应描述如下:

  • n:移动包,就好像对这个包执行APT-get——purge remove命令一样。

  • q:自动防故障选项——“退出”。如果你不小心向debfoster提示符发出一个非常规的应答,你可以使用q退出debfoster程序而不必等待执行完上面的命令。

  • s:让debfoster跳过当前的包。这既不是卸载该软件也不是将之从debfoster包列表中删除。如果你觉得可能以后会想删除该包,或者想在获得最后结果前进行深度搜索,这可以作为一个提示。

  • y:连同包的所有依赖组件一起保留,直到某些修改改变了系统中包的状态,在再次运行debfoster时,你才会被询问到这个包。开始debfoster是可能的,因为它显示它管理的所有包——甚至包括先前用y命令告诉它保存的那些包——通过使用n命令行选项,例如debfoster - n。你也可以通过简单地按回车(Enter)键选择保存包,因为y是默认的应答。

  • ?:问题标志,产生和APT-cache show相同的输出而不会让你退出debfoster程序。万一你不确定是否想将给定的包从系统中删除,这至少允许你在使用debfoster过程中对给定的包进行一些有限的搜索。

  • h:显示帮助信息以指导debfoster程序的使用。

    其它软件管理工具和应用
    APT-cache,APT-get和deborphan工具都提供了比上述更多的其它性能,你可以阅读更多有关这些程序的manpage。也有对APT系统更高级用法的其它工具可用,包括APT-file,APT-key,deborphan和dpkg。

    APTitude工具提供一个对APT比较标准的,命令行界面的替换。它具有一些不同的默认行为。APTitude基于控制台的优美界面也可以被调用以浏览包并选择其中一些进行安装。SynAPTic包针对希望用鼠标而不是键盘,对包进行搜索和浏览的用户提供一个图形用户界面。

    增加,减少或简单更换,可以通过/etc/APT/sources.list配置文档为ATP系统配置软件档案。尽管Debian系统默认没有包括/etc/APT/APT.conf文件,但是你可以创建一个安装在系统上的特定的软件版本,因为APT-get upgrade操作不会撤销你认为在系统上必须以某种方式完成的事情。

    Debian APT系统是一个十分易于使用的、功能强大而灵活的,可配置的软件管理系统。有些人可能会说它比以前任何其它软件管理系统都更易于使用,只要APT系统最初被用来安装它,甚至可以用来对源码的软件安装进行管理。学习使用APT系统是有效地管理Debian GNU/Linux系统的关键技巧,而且由高级包工具提供的系统管理性能是Debian在开源社区中流行的主要原因。(责任编辑:王海旭

    查看本文的国际来源


  • 百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
    中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
    京公网安备:1101082134