Ubuntu软件包管理

Ubuntu Linux采用了Debian的软件包管理机制。由于软件包具有易用性、灵活性和扩展性的特点,再加上Internet的支持,使用户随时都能拥有最新的 Ubuntu系统,这也是Ubuntu受到推崇的一个重要原因。因而,Deb软件包管理也成为Ubuntu中最有活力的部分。

Deb软件包

Deb软件包本质上是文件包,这点类似于tar文件将多个文件合并为一个归档文件。但是Deb的身价不在于整合文件,而在于使应用程序更易于传播。
Debian Linux开发出了APT软件包管理器。它能够自动检查和修复软件包之间的依赖关系。并且,利用Internet网络带来的快捷的连通手段,APT工具可 以帮助用户主动获取软件包。因此,APT工具再次促进了Deb软件包更为广泛地使用,成为Debian Linux的一个无法替代的亮点。

软件包的类型

  • 二进制软件包(Binary Packages)

    包含可执行文件、库文件、配置文件、man/info页面、版权声明和其他文档。
    
  • 源码包(Source Packages)

    包含软件源代码、版本修改说明、构建指令以及编译工具等。先由tar工具归档为.tar.gz文件,然后再打包成.dsc文件。
    

软件包的命名

Filename_Version-Reversion_Architecture.deb

其中,Filename表示软件包文件名,Version表示软件版本号,Reversion表示修订版本号,Architecture表示适用计算机架构。通常,修订版本号是由Ubuntu开发者或创建这个软件包的人指定。在软件包被修改过之后,将修改版本号加1。

例如:g++_4.1.2-9ubuntu2_i386.deb软件包为例,g++是软件包名,4.1.2是软件版本号,9ubuntu2是修订版本号,i386是适用的计算机架构。

软件包的优先级

级 别 含 义 补 充 说 明
Required(必须) 该级别软件包是保证系统正常运行所必须的 包含所有必要的系统工具。尽管Require级别的软件不能满足整个系统的服务,但至少能够保证系统正常启动。如果删除其中一个软件包,系统将受到损坏而无法恢复。例如bash、mount、upstart
Important(重要) 若缺少该级别软件包,系统会运行困难或不好操作 该级别软件包是一些实现系统底层功能的程序。例如,aptitude、ubuntu-keyring、cpio
Standard(基本) 该级别软件包是任何Linux系统的标准件 该级别的软件包可以支撑命令行控制台系统运行,通常作为默认安装选项,例如,memtest86、telnet、pppconfig、ed
Optional(可选) 该级别软件包是否安装不影响系统的正常运行 该级别的软件包用于满足用户特定的需求或服务,它们不会影响系统的正常运行。例如,X11、mysql、openoffic.org
Extra(额外) 该级别软件包可能与其他高级别软件包存在冲突

任何高优先级的软件包都不能依赖于低优先级的软件包。这样可以实现按照优先级一层层冻结系统。

软件包的状态

  • 期望状态

    标记用户希望将某个软件包处于的状态。
    
  • 当前状态

    标记用户操作该软件包后的最终状态。
    

这里写图片描述

软件包的依赖性关系

Debian提出了程序依赖性机制,并做详细的定义。程序依赖性是用来描述独立运行程序与当前系统中程序之间存在的关联程度。

这里写图片描述

软件包管理器将依据软件包“依赖关系”完成组件 的安装或卸载。例如,包含GNU C编译器(gcc)的软件包依赖于包含链接器和汇编器的binutils软件包。如果用户试图在没有安装binutils的情况下安装gcc,软件包管理 器将会中止安装,并出现错误提示,要求用户事先安装binutils。

发布了105 篇原创文章 · 获赞 59 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章