mysql源码包和二进制包_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 点好处:

包管理系统简单,只通过几个命令就可以实现包的安装、升级、査询和卸载。

安装速度比源码包安装快得多。

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

经过编译,不能在看到源代码。

功能选择不如源码包灵活。

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

如何选择

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/441777.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【qduoj】最长公共子串

题干: 描述 编写一个程序,求两个字符串的最长公共子串。输出两个字符串的长度,输出他们的最长公共子串及子串长度。如果有多个最长公共子串请输出在第一个字符串中先出现的那一个。 特别注意公共子串中可能包含有空格,但不计回车…

计算机导论结业报告大一,河北工业大学计算机导论结业论文.pdf

计算科学导论结业论文(黄路路 计算机科学与软件学院112班 112436)摘要 本文采用简洁的语言浅显扼要的讲解了计算机的系统理论知识,起抛砖引玉的作用。本文核心知识:共包含四大部分:计算理论、计算机的系统结构、信息的表示、计算科学与C语言的…

pythonjson实例_python:JSON的两种常用编解码方式实例解析

概念JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。在日常的工作中,应用范围极其广泛。这里就介绍python下它的两种编解码方法:使用json函数使用 JSON 函数需要导入 json 库:import json。函数…

caxa计算机编程,CAXA软件编程实例1

课时:75节课时长:24.1小时课级:中级提高课程从基础讲起,仅贴实际生产实践,适合职业院校教师、企业技术员、学生学习,讲解细致、全面,带你学习带你飞、软件使用常见问题及解决方法和使用技巧详细…

【qduoj】C语言_凯撒密码

题干: 描述 据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文&#…

python中常用的函数有哪些_Python 最常用的语句、函数有哪些?

一、常用语句1、条件语句:if else一句话概括该语句作用:非此即彼。python中的 if else 的语句功能更加强大、更加灵活。2、循环语句:for & while循环语句中,还有两个关键字至为重要:continue 与 break。这两个关键…

计算机函数select,select函数

学习目标了解select函数的各参数的作用,能够在程序设计中正确使用select函数使用select函数,编写一个简单socket服务器程序,可支持多客户端连接1、select函数机制select函数允许程序同时在等待多个底层文件描述符输入的到达,并且只…

【CodeForces - 833A】The Meaningless Game(思维题,数学,可用牛顿迭代法,知识点总结)

题干: Slastyona and her loyal dog Pushok are playing a meaningless game that is indeed very interesting. The game consists of multiple rounds. Its rules are very simple: in each round, a natural number k is chosen. Then, the one who says (or ba…

python创建变量并赋值_python怎么给变量赋值

在学习变量及赋值之前,我们要知道什么是变量! Python语言中,用等号【=】来表示赋值,Python赋值并不是直接将一个值赋值给一个变量,在Python中,对象是通过引用传递的;在传递时,不管这个对象是新创建的还是已经存在的,都是将该对象的引用赋值给变量。 举个例子,3 * 4 =…

【CodeForces - 670D1 】Magic Powder - 1 (模拟 或 枚举 或二分优化)

题干: This problem is given in two versions that differ only by constraints. If you can solve this problem in large constraints, then you can just write a single solution to the both versions. If you find the problem too difficult in large cons…

第二课计算机ppt,第二课计算机系统.ppt

第二课计算机系统主要部件功能及参数指标 机 箱 外 壳 一个完整的计算机系统是由硬件(Hardware)系统和软件(Software)系统两大部分组成。 计算机硬件是指系统中可触摸得到的设备实体,是计算机工作的基础。 计算机软件是指在硬件设备上运行的各种程序和文档。 软件系…

正则表达式 python_Python正则表达式总结

之前我们讲解了 正则表达式 的起源、发展、流派、语法、引擎、优化等相关知识,今天我们主要来学习一下 正则表达式在 Python语言 中的应用!大多数编程语言的正则表达式设计都师从Perl,所以语法基本相似,不同的是每种语言都有自己的…

建立远程ftp服务器,利用无线路由器建立FTP服务器

路由器的应用非常广泛,无线路由器技术也更加的完善和稳定,利用无线路由器能构建FTP服务器。下面,我就具体的方法在这里拿出来和大家分享一下,希望对大家有用。一、FTPFTP(文件传输协议)诞生之后,便迅速地得到了推广和应…

【HDU - 5912】Fraction (模拟)

题干: Mr. Frog recently studied how to add two fractions up, and he came up with an evil idea to trouble you by asking you to calculate the result of the formula below: As a talent, can you figure out the answer correctly? Input The first …

vue mysql webapp_基于Laravel+VueJS实战开发WebAPP

资源介绍【课程内容】1-git库与开发环境及工具软件介绍2-安装laravel框架3-安装laravel-ide-helper增强代码提示4-配置数据库与使用migrations创建表5-解决mysql5.7以下laravel不能执行数据迁移的问题6-合理的路由布局与分组路由7-远程开发环境服务器搭建与虚拟面板的使用8-使用…

计算机测试怎么提交,Win7电脑怎么测试上传速度?

做网站的人都知道上传速度是很重要的,因为太差的上传速度会影响工作的进度,所以他们经常要对上传速度进行测试,但是有一些新手不知道Win7电脑怎么测试上传速度?为此小编赶紧整理了以下教程,不知道的朋友赶紧来看看吧&a…

【HDU - 5914 】Triangle (打表 或 set维护)

题干: Mr. Frog has n sticks, whose lengths are 1,2, 3⋯⋯n respectively. Wallice is a bad man, so he does not want Mr. Frog to form a triangle with three of the sticks here. He decides to steal some sticks! Output the minimal number of sticks h…

harmonyos消息服务器,第三方纯HarmonyOS应用太少,你还愿意升级吗?

部分纯鸿蒙 HarmonyOS 应用已上线:图标多了“HMOS”角标标识,而只有真正的鸿蒙系统应用才能真正体验到万能卡片等系列的功能,但是很明显目前真正属于鸿蒙系统的第三方应用太少……基本上都是华为自身的应用,那么如果应用太少你还愿…

如何释放mysql连接资源_CI框架出现mysql数据库连接资源无法释放的解决方法

本文实例分析了CI框架出现mysql数据库连接资源无法释放的解决方法。分享给大家供大家参考,具体如下:使用ci框架提供的类查询数据: $this->load->database();$query $this->db->query($sql);程序运行一段时间之后,报错…

【nyoj - 860】 又见0-1背包 (dp,反向0-1背包,好题好思路)

题干: 又见01背包 时间限制:1000 ms | 内存限制:65535 KB 难度:3 输入 多组测试数据。 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的wi 和 v…