下载和安装源码包详解

前言

在 Linux 下安装源码包是最常用的。安装源码包需要把源代码编译成可执行的二进制文件。如果你能读懂这些源代码,就可以修改这些源代码的自定义功能,然后再按照你的需求编译。使用源码包除了可以自定义修改源代码外,还可以定制相关的功能,因为源码包在编译时可以附加额外的选项。
源码包的编译用到了 Linux 系统里的编译器。常见的源码包一般都是用 C 语言开发的,因为 C 语言是 Linux 上最标准的程序语言。Linux 上的 C 语言编译器称为 gcc,利用它可以把 C 语言编译成可执行的二进制文件。所有,如果你的机器上没有安装 gcc,就无法编译源码,可以使用命令
#yum install -y gcc来安装。

一, 下载源码包

  • 下载源码包
    // 安装 wget 命令为: #yum install -y wget
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
--2017-11-14 16:46:00--  http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz
正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.6.177, 2402:f000:1:416:101:6:6:177
正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.6.177|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:7684419 (7.3M) [application/octet-stream]
正在保存至: “httpd-2.2.34.tar.gz”

100%[=================================================================>] 7,684,419   2.79MB/s 用时 2.6s   

2017-11-14 16:46:03 (2.79 MB/s) - 已保存 “httpd-2.2.34.tar.gz” [7684419/7684419])
  • 使用 ls 查看此源码包,并解压
[root@localhost src]# ls
httpd-2.2.34.tar.gz
[root@localhost src]# tar -zxvf httpd-2.2.34.tar.gz
  • 使用 ls 查看解压完成之后的源码包
[root@localhost src]# ls
httpd-2.2.34  httpd-2.2.34.tar.gz
  • 查看 httpd-2.2.34
[root@localhost src]# cd httpd-2.2.34
[root@localhost httpd-2.2.34]# ls
ABOUT_APACHE  buildconf      emacs-style  INSTALL         LICENSE        os                srclib
acinclude.m4  CHANGES        httpd.dep    InstallBin.dsp  Makefile.in    README            support
Apache.dsw    config.layout  httpd.dsp    LAYOUT          Makefile.win   README.platforms  test
build         configure      httpd.mak    libhttpd.dep    modules        README-win32.txt  VERSIONING
BuildAll.dsp  configure.in   httpd.spec   libhttpd.dsp    NOTICE         ROADMAP
BuildBin.dsp  docs           include      libhttpd.mak    NWGNUmakefile  server

其中
README 是 Apache HTTP Server< 介绍 Server>
INSTALL 安装文档


二, 安装源码包

安装源码包的步骤 (可以在 INSTALL 中查看):

  • $ ./configure –prefix=PREFIX

  • $ make

  • $ make install

说明
(1) ./configure。这一步可以定制功能,加上相应的选项即可,具体有什么选项可以通过命令 ./configure –help 来查看。这一步会自动检测你的 Linux 系统与相关的套件是否有编译该源码包时所需要的库,因为一旦缺少某个库,就不能完成编译。只有检测通过后,才会生成 Makefile 文件。

(2)make。使用这个命令,会根据 Makefile 文件中预设的参数进行编译,这一步其实是 gcc 在工作。

(3)make install 这一步是安装步骤,用于创建相关软件的存放目录和配置文件。

对于以上这 3 个步骤,并不是所有的源码包软件都一样,也就是说,源码包的安装并没有标准的安装步骤。这就需要你拿到源码包解压后,进入目录,找到相关的帮助文档。通常, 会以 INSTALL 或者 README 为文件名。

安装操作源码包如下

  • 第一步
[root@localhost httpd-2.2.34]# ./configure --prefix=/usr/local/apache2
。。。。。。。。。。。。。。。。。
checking for APR... reconfig
configuring package in srclib/apr now
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.2
checking for chosen layout... apr
checking for gcc... no        //报错提醒没有gcc
checking for cc... no
checking for cl.exe... no

//如果你不知道你的命令是否正确可以使用,# echo$? 作用:查看上一条命令是否正确,非0说明上一条命令有错误
[root@localhost httpd-2.2.34]# echo $?
1                    //上一条命令错误

[root@localhost httpd-2.2.34]# yum install -y gcc    //安装gcc
[root@localhost httpd-2.2.34]# ./configure --prefix=/usr/local/apache2    //重新使用此命令
................
[root@localhost httpd-2.2.34]# echo $?
0                    //上一条命令正确
  • 第二步
#make    //会根据Makefile文件中预设的参数进行编译
......................... //省略
[root@localhost httpd-2.2.34]# echo $?
0                    //表示上一段代码正确
  • 第三步
#make install  //这一步是安装步骤,用于创建相关软件的存放目录和配置文件。
............................. //省略
[root@localhost httpd-2.2.34]# echo $?
0                    //表示上一段代码正确

[root@localhost httpd-2.2.34]# ls /usr/local/apache2/    //查看生成的目录
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules