在软件包管理器技术(如RPM包、Deb包)出现之前,通常采取的一种程序安装方法。

1.下载及解压源码包文件。

Linux源码包通常以gzip或bzip2等格式进行压缩归档,因此也就具有.tar.gz和.tar.bz2两种归档文件的后缀名,要想使用源码包安装,需要先进行解压并切换到源码包所在目录。
这里以cmake为例(cmake是Linux系统中一款常用的编译工具)。
切换到需要下载的目录

[root@hollowman~]# cd /usr/local/src/

下载cmake源码包

[root@hollowman src]# wget https://www.linuxprobe.com/Software/cmake-2.8.11.2.tar.gz

用tar命令解压源码包
用到xzvf参数,此时会在当前目录生成cmake-2.8.11.2目录,并将源码文件解压至该目录中

[root@hollowman src]# tar xzvf cmake-2.8.11.2.tar.gz

切换至源码文件所在目录,后续步骤中的命令都将在此目录中完成

[root@hollowman src]# cd cmake-2.8.11.2/

2.生成源码包编译代码(configure)

执行解压缩后产生的一个名为configure的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。如果检查通过,将生成用于编译 的MakeFile文件。prefix参数的作用是指定源码包程序的安装目录,从而更准确定位到安装程序,确保软件更加可控。

[root@hollowman cmake-2.8.11.2]# ./configure --prefix=/usr/local/program

正如configure的作用,如果发现问题,将会显示错误信息,如下表示cmake缺少c语言编译环境(gcc和gcc-c++),需先安装该编译环境。

---------------------------------------------
CMake 2.8.11.2, Copyright 2000-2012 Kitware, Inc.
---------------------------------------------
Error when bootstrapping CMake:
Cannot find appropriate C compiler on this system.
Please specify one using environment variable CC.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /usr/local/src/cmake-2.8.11.2/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------

安装C语言编译环境(这里用到yum工具)

[root@hollowman cmake-2.8.11.2]# yum install gcc gcc-c++

再次编译cmake源码包,正常执行并生成编译代码及Makefile文件

[root@hollowman cmake-2.8.11.2]# ./configure --prefix=/usr/local/program

3.编译生成二进制安装程序(make)

执行configure命令后生成的Makefile文件中会保存源代码编译过程中所需要的有关依赖关系和安装规则,因此可以直接通过make命令来编译生成当前系统定制的二进制安装文件。

[root@hollowman cmake-2.8.11.2]# make

4.运行二进制安装文件(make install)

此时源码包中已经包含了软件包安装所需要的安装规则及二进制安装文件,只需要通过make install命令来执行安装即可。如果在第一步编译时使用了prefix参数,则会将程序安装至指定目录,否则一般默认安装在/usr/local/bin目录中。不过这并不是绝对的,一般安装目录内的install或readme文件会有相关说明。

[root@hollowman cmake-2.8.11.2]# make install

5.清理源码包临时文件(make clean)

源码安装过程会生成一些临时垃圾文件,为节省磁盘空间,可通过make clean命令对源码包中的临时文件进行清理。

[root@hollowman cmake-2.8.11.2]# make clean