首页 > 编程笔记

Linux源码包和二进制包的区别

Linux 操作系统中的软件包非常多,而且几乎都是经 GPL 协议授权的,GPL 协议之前给大家讲过,它是具有“传染性”的,通过引用 GPL 协议下的开源程序代码开发出的新软件也必须遵循 GPL 协议。所以 GPL 协议下的开源软件扩散的方式是以树状结构无限扩散的,这也就是现如今 GPL 协议下的软件如此多的原因之一。

Linux 操作系统中的软件包大致可以分为两类:源码包与二进制包。

1、源码包

源码包里面是一大堆源代码文件,是由程序员按照特定的格式和语法编写出来的代码文件。

源码包中的代码文件是无法直接安装到操作系统上的,因为计算机只认识二进制语言,也就是 0 和 1 的组合。因此,源码包的安装需要一名“翻译官”将源代码文件翻译成二进制语言,这名“翻译官”通常被称为编译器。

编译指的就是将源代码转换为能被计算机执行的二进制程序的翻译过程。编译器的功能就是把源代码翻译为二进制代码,让计算机识别并且运行!

大家试想一下,编译操作由谁来完成呢,编译器?编译器只是一个供用户使用的工具而已,操作的过程还是由用户完成。用户可以使用编译器指定编译的选项,例如编译的时候要添加/删除程序的某个功能等。也就是说,用户可以在编译时自定义程序的功能。

源码包的优点:
源码包的缺点:
通过这些优缺点的比较容易发现,源码包的编译安装对初学者是很不友好的,不仅要耗费大量的编译时间,还需要特定的编译环境。况且有很多用户并不熟悉程序语言,在安装过程中初学者只能祈祷程序编译过程不要报错,否则很难解决问题。

2、二进制包

为了解决使用源码包安装方式出现的问题,二进制包应运而生,成为 Linux 软件包的第二种安装方式。

二进制包就是源码包经过成功编译后生成的程序包。二进制包在发布之前就已经完成了所有的编译工作,因此用户安装软件的速度较快,与在Windows下安装软件的速度差不了多少,而且程序的安装过程报错概率也大大减小。

目前,Linux 操作系统主要的二进制包管理系统有两种:RPM 包管理系统和 DPKG 包管理系统:
RPM 包管理系统和 DPKG 包管理系统的原理和形式大同小异,学会其中一个,另一个也就无师自通了。

二进制包的优点:
二进制包的缺点:
源码包与二进制包这两种安装方式各有优缺点,大家可以根据安装环境和自身需求来选择,一般在操作系统中能使用二进制包就尽量使用二进制包,没办法使用二进制包的情况下再选择源码包进行安装部署。

推荐阅读

副业交流群 关注微信公众号,加入副业交流群,学习变现经验,交流各种打法。