Linux软件包(源码包和二进制包)

Linux下的软件包众多,且几乎都是经 GPL 授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。

GPL,全称 General Public License,中文名称“通用性公开许可证”,简单理解 GPL 就是一个保护软件自由的一个协议,经 GPL 协议授权的软件必须开源,请猛击《开源协议》了解更多信息。

Linux下的软件包可细分为两种,分别是
源码包
二进制包

Linux源码包

实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。

我们都知道,计算机只能识别机器语言,也就是二进制语言,所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言,这名“翻译官”通常被称为
编译器

“编译”指的是从源代码到直接被计算机(或虚拟机)执行的目标代码的翻译过程,编译器的功能就是把源代码翻译为二进制代码,让计算机识别并运行,读者可以猛击《C语言编译器》了解更多信息。

虽然源码包免费开源,但用户不会编程怎么办?一大堆源代码程序不会使用怎么办?源码包容易安装吗?等等这些都是使用源码包安装方式无法解答的问题。

另外,由于源码包的安装需要把源代码编译为二进制代码,因此安装时间较长。比如,大家应该都在 Windows下安装过 QQ,QQ 功能较多,程序相对较大(有 70 MB左右),但由于其并非是以源码包的形式发布,而是编译后才发布的,因此只需几分钟(经过简单的配置)即可安装成功。但如果我们以源码包安装的方式在 Linux 中安装一个 MySQL 数据库,即便此软件的压缩包仅有 23 MB左右,也需要 30 分钟左右的时间(根据硬件配置不同,略有差异)。

通过对比你会发现,源码包的编译是很费时间的,况且绝多大数用户并不熟悉程序语言,在安装过程中我们只能祈祷程序不要报错,否则初学者很难解决。

为了解决使用源码包安装方式的这些问题,Linux 软件包的安装出现了使用二进制包的安装方式。

Linux二进制包

二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。

二进制包是 Linux 下默认的软件安装包,因此二进制包又被称为默认安装软件包。目前主要有以下 2 大主流的二进制包管理系统:

  • RPM 包管理系统:功能强大,安装、升级、査询和卸载非常简单方便,因此很多 Linux 发行版都默认使用此机制作为软件安装的管理方式,例如 Fedora、CentOS、SuSE 等。
  • DPKG 包管理系统:由 Debian Linux 所开发的包管理机制,通过 DPKG 包,Debian Linux 就可以进行软件包管理,主要应用在 Debian 和 Ubuntu 中。

RPM 包管理系统和 DPKG 管理系统的原理和形式大同小异,可以触类旁通。由于本教程使用的是 CentOS 6.x 版本,因此本节主要讲解 RPM 二进制包。

源码包 VS RPM二进制包

源码包一般包含多个文件,为了方便发布,通常会将源码包做打包压缩处理,Linux 中最常用的打包压缩格式为“tar.gz”,因此源码包又被称为 Tarball。

Tarball 是 Linux 系统的一款打包工具,可以对源码包进行打包压缩处理,人们习惯上将最终得到的打包压缩文件称为 Tarball 文件。

源码包需要我们自己去软件官方网站进行下载,包中通常包含以下内容:

  • 源代码文件。
  • 配置和检测程序(如 configure 或 config 等)。
  • 软件安装说明和软件说明(如 INSTALL 或 README)。

总的来说,使用源码包安装软件具有以下几点好处:

  • 开源。如果你有足够的能力,则可以修改源代码。
  • 可以自由选择所需的功能。
  • 因为软件是编译安装的,所以更加适合自己的系统,更加稳定,效率也更高。
  • 卸载方便。

但同时,使用源码包安装软件也有几点不足:

  • 安装过程步骤较多,尤其是在安装较大的软件集合时(如 LAMP 环境搭建),容易出现拼写错误。
  • 编译时间较长,所以安装时间比二进制安装要长。
  • 因为软件是编译安装的,所以在安装过程中一旦报错,新手很难解决。

相比源码包,二进制包是在软件发布时已经进行过编译的软件包,所以安装速度比源码包快得多(和 Windows 下软件安装速度相当)。也正是因为已经进行通译,大家无法看到软件的源代码。

使用 RMP 包安装软件具有以下 2 点好处:

  1. 包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载。
  2. 安装速度比源码包安装快得多。

与此同时,使用 RMP 包安装软件有如下不足:

  • 经过编译,不能在看到源代码。
  • 功能选择不如源码包灵活。
  • 依赖性。有时我们会发现,在安装软件包 a 时需要先安装 b 和 c,而在安装 b 时需要先安装 d 和 e。这就需要先安装 d 和 e,再安装 b 和 c,最后才能安装 a。比如,我买了一个漂亮的灯具,打算安装在客厅里,可是在安装灯具之前,客厅需要有顶棚,并且顶棚需要刷好油漆。安装软件和装修及其类似,需要有一定的顺序,但是有时依赖性会非常强。

如何选择

通过源码包和 RMP 二进制包的对比,在 Linux 进行软件安装时,我们应该使用哪种软件包呢?

为了更好的区别两种软件包,这里举个例子。假设我们想做一套家具,源码包就像所有的家具完全由自己动手手工打造(手工编译),想要什么样的板材、油漆、颜色和样式都由自己决定(功能自定义,甚至可以修改源代码)。想想就觉得爽,完全不用被黑心的厂商所左右,而且不用担心质量问题(软件更适合自己的系统,效率更高,更加稳定)。但是,所花费的时间大大超过了买一套家具的时间(编译浪费时间),而且自己真的有做木工这个能力吗(需要对源代码非常了解)?就算请别人定制好的家具,再由自己组装,万一哪个部件不匹配(报错很难解决),怎么办?

那么二进制包呢?也是我们需要一套家具,去商场买了一套(安装简单),家具都是现成的,不会有哪个部件不匹配,除非因为自身问题没有量好尺寸而导致放不下(报错很少)。但是我们完全不知道这套家具用的是什么材料、油漆是否合格,而且家具的样式不能随意选择(软件基本不能自定义功能)。

通过以上对源码包和二进制包的讲解,相信大家对两者的区别和特点有了更清楚的认识。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/221728.html<

(0)
运维的头像运维
上一篇2025-04-15 04:15
下一篇 2025-04-15 04:17

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注