当前位置:C++技术网 > 资讯 > Linux中安装软件的背景知识介绍-直接安装和编译安装的区别

Linux中安装软件的背景知识介绍-直接安装和编译安装的区别

更新时间:2017-02-18 09:53:03浏览次数:1+次

    在Linux安装软件,经常会让Linux菜鸟头痛不已。一会是yum,一会是make install,真是傻傻分不清楚。反正教程怎么说,就怎么做,至于为什么,完全不知道。今天我终于领悟了Linux安装软件的套路,所以分享给大家。可以让Linux菜鸟彻底认识Linux安装软件这些背景。

    本来也是因为在安装GCC编译器领悟的,下面就用GCC来说事。

    GCC是开源组织开发的软件,大家都可以免费使用。Linux的开源版本众多,但是会分为几大类流派,所以GCC编译好的版本,即可以供你直接安装使用的版本,叫做发行包安装程序,也就是Windows上常说的安装包,都是针对这几类Linux编译生成的安装包。安装包也叫作二进制包,就是编译成二进制的可执行文件了。这样的安装包,就和Windows上的软件一样,安装就可以使用了。

    然而各大公司从Linux的基本版本定制开发出来了各种版本,如RedHat、Centos、Ubuntu等等。这些版本,有些是开源免费的,有些是商业版本,不同的版本差异较大。
    作为开源组织,自然也不会为某个公司工作,所以不会提供某些系统版本的编译版本,而只是提供基本Linux版本的编译版本,供开源使用。所以,这些系统如果要提供GCC安装包,就需要开发商针对这个系统编译好,制作成安装包,供用户下载安装使用。因为对某一个系统来说,系统的环境是确定的,编译好的安装包在这个系统是可以正常运行的。也因此,我们下载安装包的时候要看清楚系统版本版次。
    不过好在这些系统开发上都提供了软件管理工具,也就我们常说的yum之类的工具,它可以直接从对应的软件安装包库里获取这个系统合适的安装包,供用户下载安装。
    而开源软件发展的很快,版本迭代也特别快,太新的版本可能不稳定。所以系统开发商也不会时刻跟进编译最新的版本生成安装包。这也就是yum里面的版本比官网提供下载的版本低的原因。软件官网如GCC一般都是提供源码,供大家自行编译安装。
    所以,Linux中安装软件分为两类,一是直接下载软件安装包来安装,二是下载软件官网的源码包,自行编译然后再安装。直接安装的方式就是yum等方式,自行编译的就是下载压缩包、解压、配置、准备基础支持的库(如果没有,需要提前安装,如果yum里面没有安装版,也需要先编译再安装),然后编译,再安装。
    直接安装当然是最简单的。yum这样的方式不仅可以让你方便,还很省心。yum会自动处理依赖关系,会自动被安装上去。因为yum里面的版本安装需要的东西都是在软件库里都事先准备好了的。而源码编译安装也就是常见的./configure、make、make install这种方式。这种方式很容易出错,一旦出错,你得想办法去解决错误。经常出现的问题就是依赖库没有安装,导致无法安装,或者版本不对,你就需要去将依赖的库的版本升级成对应的版本。

    可以说,不熟悉Linux的新手,根本就不明白yum和make install是干嘛的,反正教程都是叫这么干的,也只知道这是两种安装方式,却不知道为什么。

    上面说了编译方式和为什么会出现这样的编译方式,下面再来说说下载那点事,因为和安装有关,先简单说说。

    相信经常折腾安装软件的朋友,肯定知道了wget命令。然后安装软件的方式还可以直接下载到我们的电脑,然后通过FTP客户端上传到Linux服务器,然后再安装。

    这是两种获取安装包或者源码包的方式而已。我们能够手动下载安装包,也就可以通过wget方式来获取。wget命令只要一个下载地址,就可以了。wget是直接在服务器上下载文件,存在当前的目录里。比如你cd 到/tmp,然后wget执行后,下载的文件就存放在/tmp了。说这一点,也是一开始很多人也不知道自己下载的东西放在哪里了。

    wget方式下载到服务器里,和我们手动上传到服务器里,是殊途同归的。只是我们太熟悉Windows上下载文件,也熟悉FTP了。对于wget了解的太少。

    等文件到了服务器,我们就可以开始解压或安装了。当然,还有一种安装方式,就是我们先将安装包下载后,然后直接安装。yum是直接下载和安装,一步到位的。而我们经常会自己下载一些安装包,然后手动来使用安装包安装。

    那么最后总结一下,对于安装包或者源码包,有两种获取方式,即直接在服务器上下载和手动上传。如果yum能够从软件库里获取到,就直接用yum安装,省心,如果没有,我们可以自己准备好安装包,然后手动安装。如果是新版本,很可能还没有安装包,我们就要准备好源码包,编译安装。

    基本是安装的方式和安装准备,介绍到这里就差不多了。如果你还有问题,请留言。