Linux软件包(源码包和⼆进制包)及其区别和特点
转载⾃:
叙述
Linux 下的软件包众多,⽽且⼏乎都是经 GPL 授权的,也就是说这些软件都免费,振奋⼈⼼吧?⽽且更棒的是,这些软件⼏乎都提供源代码(开源的),只要你愿意,就可以修改程序源代码,以符合个⼈的需求和习惯。当然,你要具备修改这些软件的能⼒才可以。
源码包到底是什么呢?其实就是软件⼯程师使⽤特定的格式和语法所书写的⽂本代码,是⼈写的计算机语⾔的指令,⼀般由英⽂单词组成。是不是有点晕?
其实源代码程序是程序员写的计算机指令,符合特定的格式和语法。那么,众所周知,计算机可以识别的是机器语⾔,也就是⼆进制语⾔,所以需要⼀名翻译官把abed翻译成⼆进制机器语⾔。我们⼀般把这名翻译官称为编译器,它的作⽤就是把⼈能够识别的 abcd 翻译成⼆进制机器语⾔,让计算机可以识别并执⾏。
源码包不⽤担⼼收费问题,但是我并不会 C 语⾔怎么办?那⼀⼤堆的源代码程序到底如何使⽤呢?这个源码包容易安装吗?源码包的安装因为要把源代码编译为⼆进制语⾔,所以安装的时间较长。⽐如,在
Windows 下⼤家可能安装过 QQ,现在的 QQ 功能较多,程序相对较⼤,⼤概有 60 MB,但由于 QQ 并不是以源代码形式发布的,⽽是经过编译之后发布的,所以只需要⼏分钟并经过简单的配置就可以安装成功。安装时间较短(当然功能也基本不能⾃定义)。
在 Linux 中安装⼀个 MySQL 数据库,这个数据库的压缩包⼤概有 23 MB,需要多长时间呢?答案是 30 分钟左右(根据计算机硬件配置不同)。这样看来编译还是很浪费时间的,⽽且绝⼤多数⽤户并不熟悉写程序的语⾔,所以我们要祈祷程序不要报错,否则对初学者来讲很难解决。
为了解决源码包的这些问题,在 Linux 中就出现了⼆进制包,也就是源码包经过编译之后的包。这种包因为编译过程在发布之前已经完成,所以⽤户安装时速度较快(和 Windows 下安装软件速度相当),⽽且报错也⼤⼤减少。
⼆进制包是 Linux 下的默认安装软件包,所以有时我们也把⼆进制包称作默认安装软件包。⽬前主要有两个系列的⼆进制包管理系统:⼀个是 Red Hat 上的 RPM 包管理系统;另⼀个是 Debian 和 Ubuntu 上的 DPKG 包管理系统。本教程讲的是 Red Hat 公司的 CentOS Linux,所以我们主要讲解 RPM 包管理系统。不过这两个系列的⼆进制包管理的原理与形式⼤同⼩异,可以触类旁通。
说了这么多,到底源码包和⼆进制包哪个好呢?举个例⼦,我们想做⼀套家具,源码包就像所有的家具完全由⾃⼰动⼿⼿⼯打造(⼿⼯编译),想要什么样的板材、油漆、颜⾊和样式都由⾃⼰决定(功源代码大电影
能⾃定义,甚⾄可以修改源代码)。想想就觉得爽,完全不⽤被⿊⼼的⼚商所左右,⽽且不⽤担⼼质量问题(软件更适合⾃⼰的系统,效率更⾼,更加稳定)。但是,所花费的时间⼤⼤超过了买⼀套家具的时间(编译浪费时间),⽽且我⾃⼰真的有做⽊⼯这个能⼒吗(需要对源代码⾮常了解)?就算请别⼈定制好的家具,再由我⾃⼰组装,万⼀哪个部件不匹配(报错很难解决),怎么办?
那么⼆进制包呢?也是我需要⼀套家具,可是我去商场买了⼀套(安装简单),家具都是现成的,不会有哪个部件不匹配,除⾮因为我没有量好尺⼨⽽导致放不下(报错很少)。但是我完全不知道这套家具⽤的是什么材料、油漆是否合格,⽽且家具的样式不能随意选择(软件基本不能⾃定义功能)。
好了,通过这个例⼦⼤家可以了解源码包和⼆进制包之间的区别。
源码包的特点
源码包既然是软件包,就不会是⼀个⽂件,⽽是多个⽂件的集合。出于发⾏的需要,我们⼀般会把源码包打包压缩之后发布,⽽ Linux 中最常⽤的打包压缩格式是"",所以我们也把源码包叫作 Tarball。源码包需要⼤家⾃⼰去软件的官⽅⽹站进⾏下载。
源码包的压缩包中⼀般会包含如下内容:
源代码⽂件。
配置和检测程序(如configure或config等)。
软件安装说明和软件说明(如INSTALL或 README)。
源码包的优点如下:
开源。如果你有⾜够的能⼒,则可以修改源代码。
可以⾃由选择所需的功能。
因为软件是编译安装的,所以更加适合⾃⼰的系统,更加稳定,效率也更⾼。
卸载⽅便。
源码包的缺点如下:
安装过程步骤较多,尤其是在安装较⼤的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
编译时间较长,安装时间⽐⼆进制安装要长。
因为软件是编译安装的,所以在安装过程中⼀旦报错,新⼿很难解决。
⼆进制包的特点
⼆进制包是在软件发布的时候已经进⾏过编译的软件包,所以安装速度⽐源码包快得多(和 Windows 下软件安装速度相当)。但是因为已经进⾏通译,⼤家也就不能在看到软件的源代码了。⽬前两⼤主流的⼆进制包系统是 DPKG 包和 RPM 包。
DPKG 包是由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进⾏软件包管理,主要应⽤在 Debian 和Ubuntu 中。
RPM 包是由 Red Hat 公司所开发的包管理系统,功能强⼤,安装、升级、査询和卸载⾮常简单⽅便。
⽬前很多 Linux 版本都在使⽤这种包管理⽅式,包括 Fedora、CentOS、SuSE 等。Linux 默认采⽤ RPM 包来安装系统,所以常⽤的RPM 包都在安装光盘中。
RPM 包的优点如下:
包管理系统简单,只通过⼏个命令就可以实现包的安装、升级、査询和卸载。
安装速度⽐源码包安装快得多。
RPM 包的缺点如下:
经过编译,不能在看到源代码。
功能选择不如源码包灵活。
依赖性。有时我们会发现,在安装软件包 a 时需要先安装 b 和 c,⽽在安装 b 时需要先安装 d 和 e。这就需要先安装 d 和 e,再安装 b 和c,最后才能安装 a。⽐如,我买了⼀个漂亮的灯具,打算安装在客厅⾥,可是在安装灯具之前,客厅需要有顶棚,并且顶棚需要刷好油漆。安装软件和装修及其类似,需要有⼀定的顺序,但是有时依赖性会⾮常强。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论