怎么给网站带来流量,诸城做网站的,上海 企业 网站建设,百度信息流推广Linux下的软件包众多#xff0c;且几乎都是经 GPL 授权、免费开源#xff08;无偿公开源代码#xff09;的。这意味着如果你具备修改软件源代码的能力#xff0c;只要你愿意#xff0c;可以随意修改。 GPL#xff0c;全称 General Public License#xff0c;中文名称“通…Linux下的软件包众多且几乎都是经 GPL 授权、免费开源无偿公开源代码的。这意味着如果你具备修改软件源代码的能力只要你愿意可以随意修改。 GPL全称 General Public License中文名称“通用性公开许可证”简单理解 GPL 就是一个保护软件自由的一个协议经 GPL 协议授权的软件必须开源请猛击《开源协议》了解更多信息。 Linux下的软件包可细分为两种分别是源码包和二进制包。
Linux源码包
实际上源码包就是一大堆源代码程序是由程序员按照特定的格式和语法编写出来的。 我们都知道计算机只能识别机器语言也就是二进制语言所以源码包的安装需要一名“翻译官”将“abcd”翻译成二进制语言这名“翻译官”通常被称为编译器。 “编译”指的是从源代码到直接被计算机或虚拟机执行的目标代码的翻译过程编译器的功能就是把源代码翻译为二进制代码让计算机识别并运行读者可以猛击《C语言编译器》了解更多信息。 虽然源码包免费开源但用户不会编程怎么办一大堆源代码程序不会使用怎么办源码包容易安装吗等等这些都是使用源码包安装方式无法解答的问题。 另外由于源码包的安装需要把源代码编译为二进制代码因此安装时间较长。比如大家应该都在 Windows下安装过 QQQQ 功能较多程序相对较大有 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 进行软件安装时我们应该使用哪种软件包呢 为了更好的区别两种软件包这里举个例子。假设我们想做一套家具源码包就像所有的家具完全由自己动手手工打造手工编译想要什么样的板材、油漆、颜色和样式都由自己决定功能自定义甚至可以修改源代码。想想就觉得爽完全不用被黑心的厂商所左右而且不用担心质量问题软件更适合自己的系统效率更高更加稳定。但是所花费的时间大大超过了买一套家具的时间编译浪费时间而且自己真的有做木工这个能力吗需要对源代码非常了解就算请别人定制好的家具再由自己组装万一哪个部件不匹配报错很难解决怎么办 那么二进制包呢也是我们需要一套家具去商场买了一套安装简单家具都是现成的不会有哪个部件不匹配除非因为自身问题没有量好尺寸而导致放不下报错很少。但是我们完全不知道这套家具用的是什么材料、油漆是否合格而且家具的样式不能随意选择软件基本不能自定义功能。 通过以上对源码包和二进制包的讲解相信大家对两者的区别和特点有了更清楚的认识。