14- 软件包系统及其工作方式

决定 Linux 发行版本质量最重要的因素是软件包系统和支持该发行版本社区的活力。进一步接触 Linux,我们就会发现 Linux 软件的研究现状相当活跃。事物总是在不断变化,许多一流的 Linux 发行版本每 6 个月就有一个新版本问世,而且许多个人程序每天都在更新。要想同步这些日新月异的软件,我们就需要好的工具进行软件包管理

软件包管理是一种在系统上安装、维护软件的方法。目前,很多人通过安装 Linux 经销商发布的软件包来满足他们所有的软件需求。这与早期的 Linux 形成了鲜明对比。因为在 Linux 早期,想要安装软件必须先下载源代码,然后对其进行编译。这并不是说编译源代码不好,源代码公开恰是 Linux 吸引人的一大亮点。编译源代码赋予用户自主检查、提升系统的能力,只是使用预先编译的软件包会更快,更容易些

本章会讲解一些用于 Linux 软件包管理的命令行工具。尽管目前所有主流的 Linux 发行版本都提供了强大而复杂的 维持系统运行的图形化界面操作程序,但学习命令行程序同样重要因为它可以执行许多图形化程序很难甚至无法完成的任务

一、软件包系统

不同的 Linux 发行版用的是不同的软件包系统,并且原则上适用于一种发行版的软件包与其它版本是不兼容的

多数 Linux 发行版采用的不外乎两种软件包技术阵营:Debian 的 .deb 技术 和 Red Hat 的 .rpm 技术

当然也有一些特例,比如 Gentoo 、Slackware、和 Foresight 等,但大多数版本采取的还是下表中所列的两个基本软件包系统。

1.主流软件包系统类:

软件包系统 发行版本(列举少部分)
Debian类( .deb 技术) Debian、Ubuntu、Xandros、Linspire
Red Hat类( .rpm 技术) CentOS、Fedora、Red Hat Enterprise、openSUSE、Mandriva、PCLinuxOS

二、软件包系统工作方式

在非开源软件产业中,给系统安装一个新应用,通常需先购买 “ 安装光盘 ” 之类的安装介质,然后运行安装向导进行安装。

Linux并不是这样。事实上,Linux 系统的所有软件均可在网上找到,并且多数是以 软件包文件 的形式由发行商提供,其余则以可手动安装的源代码形式存在

1.软件包文件

(1)包文件是什么?

包文件是组成软件包系统的基本软件单元,它是由组成软件包的文件压缩而成的文件集

① 包文件的组成

一个包可能包含大量的程序以及支持这些程序的数据文件,包文件既包含了安装文件,又包含了有关包自身及其内容的文本说明之类的软件包元数据。此外,许多软件包中还包含了安装软件包前后执行配置任务的安装脚本

② 包文件的维护

包文件通常由软件包维护者创建,该维护者通常是(并不总是)发行商的职员。

包维护者从上游供应商(一般是程序的作者)获得软件源代码,然后进行编译,并创建包的元数据及其它必须的安装脚本。

通常,包维护者会在初始源代码上做部分修改,从而提高该软件包与该Linux发行版本其它部分的兼容性

2.库

虽然一些软件项目选择自己包装和分销,但如今多数软件包均由 发行商 或 感兴趣的第三方创建。

(1)中心库

Linux 用户可以从其所使用的 Linux 版本的中心库中获得软件包

所谓中心库,一般包含了成千上万个软件包,而且每一个都是专门为该发行版本建立和维护的

(2)测试库、开发库

在软件开发生命周期的不同阶段,一个发行版本可能会维护多个不同仓库。例如:

① 测试库

通常会有一个测试库,该库里面存放的是刚创建的、用于调试者在软件包正式发布前查找漏洞的软件包

② 开发库

另外,一个发行版本通常还会有一个开发库存放的是下一个公开发行的版本中所包含的开发中的软件包

(3)第三方库

一个发行版本可能还会有相关的第三方库,这些库通常提供因法律原因,如 专利 或 数字版权管理(DRM)等反规避问题而不能包括在发行版本中的软件,著名实例就是加密的 DVD 技术支持,该做法在美国不合法。

第三方库主要用在软件专利 和 反规避法不适用 的国家,这些库通常完全独立于它们所支持的 Linux 版本,用户必须充分了解后手动将其加入到软件包文件管理系统的配置文件中,才能使用它们。

3.依赖关系

几乎没有任何一个程序是独立的。与之相反,程序之间相互依赖彼此完成既定工作

(1)共享库

一些共有的操作,比如输入/输出操作,就是由多个程序共享的例程执行。这些例程存储在共享库里面,共享库里面的文件为多个程序提供必要的服务

① 依赖性

如果一个软件包需要共享库之类的共享资源,说明其具有依赖性

(2)依赖性解决策略

现代软件包管理系统都提供依赖性解决策略,从而确保用户安装了软件包的同时也安装了其所有的依赖关系

4.高级和低级软件包工具

软件包管理系统通常包含两类工具:高级软件包工具、低级软件包工具

(1)高级软件包工具

高级工具:进行元数据搜索及提供依赖性解决

(2)低级软件包工具

低级工具:执行如安装、删除软件包文件等任务

(3)不同版本的软件包工具

本章将要介绍 Debian 类型的系统(如:Ubuntu 等类似系统)所提供的软件包工具 和 最近的 Red-Hat 系列产品使用的软件包工具。

尽管所有 Red-Hat 系列版本都使用相同的低级工具 rpm,但使用的高级工具却不尽相同。下表将介绍 Red-Hat 系列的高级软件包工具 yum 程序,它为高级 Centos、Fedora、Red Hat Enterprise Linux(红帽企业版Linux) 等系统所用,而其它 Red-Hat 系列的发行版本也提供功能与之相媲美的高级工具。

① 软件包系统工具
发行版本 低级工具 高级工具
Debian 类(如:Ubuntu) dpkg apt-get、aptitude
Red-Hat 系列(如:Centos、Fedora、Red Hat Enterprise Linux) rpm yum
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容