linux的软件安装—通过源码安装

2020-07-08 00:00:00 软件 编译 源码 安装 就可以

在windows下安装软件,大家的流程一般是这样的:从网上或者其他渠道找到安装包,双击击安装包,一直点击下一步,然后就完成了。在这个过程中,有可能会去选择个安装路径或者简单配置一些安装选项。整个过程还是挺直观的。

一旦习惯了windows的这中安装思维,来到linux下,你可能就会抓狂了。哪里去下载安装包,下载后为啥不能双击安装。

其实在linux下安装软件,要换个思路,不能以windows的思维去做。

在linux的世界里,安装软件有三个方法,、从源码安装;第二、通过包管理工具来安装,比如红帽系的rpm包管理工具rpm、debian系的deb包管理工具dpkg;第三、通过软件包管理器来安装,比如红帽系的yum、debian系的apt。在这里我先介绍怎么从源代码安装软件。

从源码安装软件

如果你刚接触linux,你可能会问,啥是源码,这东西能吃吗?实际上,我们所有使用的软件,运行着的程序都是从源码来的。

先来介绍段小历史。计算机只认识0、1这两个数字,计算机世界里所有的东西都是通过这两个数字呈现出来的:你看到的照片、看到的视频、听到的音乐、使用的软件等。计算机刚发明的时候,确实是使用0、1这两个东西来写程序的,那个时候,需要准备纸带,通过在纸带上打孔来表示0、1,把打好孔的纸带送到计算机那里执行。这个时候的操作,只能由专业的人员来编写,编写效率低,对普通人来说,那就是天书。后来随着技术的发展,就出现了编程语言这个东西,通过编程语言,人们就可以用类似于书写英文的方式来写程序了,写出来的程序不能够直接用,需要通过编译软件,把人写的程序翻译成机器可以认识的东西—0、1这个两个数字,被翻译后的代码,就是我们看到的软件了,所以软件实际上就是0、1数字组成的东西。

看了这段小历史,你可能就知道了什么是从源码安装软件了。从源码安装,我们首先要找软件的源码,这个一般在软件的官方网站就可以找到。找到之后,用编译软件,对源码进行编译,完成编译后,这个软件就可以使用了。我们以安装nginx整个软件来看看这个整个过程是怎么操作的。

nginx是一个web服务软件,这个软件是由俄罗斯的一位大牛开发的,初是用在Rambler.ru这个网站,由于nginx的性能出众,现在已经应用到大量网站。

我们先从nginx的官网找到源码:nginx.org/en/download.h

这里面随便找一个就可以了,我选择了nginx-1.18.0这个稳定版的。

通过wget nginx.org/download/ngin -O /tmp/nginx,就可以把这个源码包下载下载,这里我把源码包下载到了tmp目录,命名为nginx。

>>wget是一个命令行的下载工具,格式是:wget 源url -O 目的地址

下载下来后,这个源码包是不能够直接用的,它是一个压缩包,需要把它解压后才能看到里面的源码。

通过cd /tmp,进入到tmp目录,用ls命令,就可以看到我们刚刚下载的东西了:

通过nginx-1.18.0.tar.gz 的后缀tar和gz我们可以找到这个压缩包使用tar打包,并且用gzip对包进行压

通过tar命令我们就可以把这个压缩包解压:

tar -zxf nginx

再用ls命令,就可以看解压出来的文件了:


进入nginx-1.18.0这个文件夹,我们可以看到

这里,我们主要关注configure、README、src文件和文件夹。

configure是安装时的配置和检查工具,一个shell脚本文件。

README是说明文件,安装之前可以看看里面的内容,里面可以提供许多有效的信息。

src是源代码,我们的所有源码都放在这里:

可以看到,这里是以.h 和.c文件结尾的文件,这些是用C语言写的源码,打开其中一个就可以看到源码是长成什么样子的了:

看到没,是不是很像英文写的东西?


解压后,我们就可以通过configure对环境检查,看看有没有少东西,顺便设置个安装目录。我把安装目录设置在/tmp/installPath

命令是这么写的:./configure --prefix=/tmp/installPath,如果没有这个文件夹,它会自动创建。接下来就看检查的结果怎么样了。如果不正常,会提示缺少什么东西,然后跟着提示把缺少的东西安装上就可以了。

检查完、配置好之后,就可以开始编译了,敲make命令就可以开始。

在小项目中,我们可以不用这个工具,直接通过编译器,对源码进行编译。但是在项目比较大,文件多的时候,需要这个工具对编译过程进行管理,它会调用makefile,这个makefile就是一个写好编译语句的东西,里面会调用编译器,比如gcc,执行编译,清理编译后的冗余文件,通过make和makefile,就可以很方便对项目的编译进行管理。如果在大项目中,不使用这个工具,要对成百上千上万的源码

是不太可能的,如果其中一个文件修改了,要重新编译的话,将会是一个噩梦。

编译完后,可以看到类似的结果:


后,我们需要做的就是安装了,通过make install,这个软件就会被安装到我们开始设置的那个文件夹里面:

这样,我们整个的安装过程就完成了。这里面消耗时间的就是编译和环境检查,在这里面有可能出现的就是缺整个缺哪个软件包,需要自己手动去把这些缺少的东西找到并安装。

安装完后,如果我们不需要了应该怎么删除呢?再windows中,如果我们不需要一个软件,我们是这么删除的:打开控制面板,找到程序管理,在里面找到之前安装的软件,然后点击卸载,如果顺利,就可以把软件删除。删除完后,通常会留下尾巴,比如说注册表里的东西。然后,你可能会用清理工具进行深度清理。是不是觉得windwos的安装比删除简单些?

在linux里,删除就简单了,直接用rm -rf 安装的文件夹 既可以了,拿刚才安装的nginx来说,rm -rf /tmp/installPath就可以了。是不是觉得删除很简单。哈哈。

好了,整个过程我们走完了,总结一下从源码安装的整个过程:

、从官方网站找到源码,并下载。使用的命令是wget来下载,如果没有也可以使用curl。

第二、对源码包进行解压,把源文件放到一个文件夹。通过命令tar -zxf来解压源代码包。

第三、用源码包里的configure这个工具,检查安装环境,补上没有安装的软件,通过检测后,如果有需要,可以配置安装位置。

第四、通过make这个工具,对源码进行编译。

第五、通过make install,对编译好的文件。

希望本文对你有帮助~

相关文章