程序包管理之编译安装apache

编译就是讲开发者提供的源代码,通过编译器,汇编器,连接器转换成可以直接在操作系统上运行的二进制指令的过程。C/C++源码的编译通常包括以下几个过程:

    预处理(Preprocessing)
    编译(Compilation)
    汇编(Assembly)
    链接(Linking)

gcc编译器的大体过程如下图所示:程序包管理之编译安装apache

Linux中源码编译前我们首先需要依赖环境的支持,即编译工具、以及各个被依赖的程序包的开发组件:

1.编译的工具包组有:

Development tools

Server Platform Development

Desktop Platform Development

Debug Tools

2.被依赖的程序包的开发组件:

(1)编译安装被依赖的程序;

(2)安装相关程序的名称中包含devel的子包;

由于源码包中的源码文件存放在多个文件中,彼此之间存在着依赖关系,所以我们需要项目管理工具,相对于C/C++我们通常使用的是GNU make。项目构建工具会根据配置文件(makefile)中定义的次序对源码文件进行编译。

编译安装的过程如下:

1.运行configure脚本

configure脚本的应用:

–prefix:指定默认安装路径

–sysconfdir:指定配置文件安装路径

–with-CAPABLILITY:依赖的程序包

–without-CAPABILITY:不依赖的程序包

–enable-FEATURE:启用某个特性

–disable:禁用某个特性

2.运行make命令,完成项目构建

3.运行makeinstall命令,完成安装

我们以Apache为例进行演示:

程序包管理之编译安装apache 程序包管理之编译安装apache程序包管理之编译安装apache

经过上述三步,编译安装的基本步骤已经完成,下面我们需要将编译生成的二进制程序文件路径,库文件路径,以及头文件,man帮助手册路径写入系统的环境变量当中: 1).在/etc/profile.d/下建立一个以.sh结尾的文件将/usr/local/apache2/bin路径添加进去。 程序包管理之编译安装apache

2).在/etc/ld.so.conf.d下面建立一个以.conf结尾的的文件将库文件路径写进去。并执行ldconfig命令,重新生成库映射缓存ld.so.conf. 程序包管理之编译安装apache

[root@localhost ~]# ldconfig

3).将头文件生成软连接到/usr/include中 程序包管理之编译安装apache 4).将man手册路径添加到/etc/man.conf当中(CetenOS 6.8) 程序包管理之编译安装apache

测试安装是否成功:

[root@localhost include]# apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
[root@localhost include]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address   Foreign Address State  
tcp0  0 0.0.0.0:111 0.0.0.0:*   LISTEN  
tcp0  0 0.0.0.0:22  0.0.0.0:*   LISTEN  
tcp0  0 0.0.0.0:38326   0.0.0.0:*   LISTEN  
tcp0  0 127.0.0.1:631   0.0.0.0:*   LISTEN  
tcp0  0 127.0.0.1:250.0.0.0:*   LISTEN  
tcp0 64 10.1.250.133:22 10.1.250.21:2519ESTABLISHED 
tcp0  0 :::58111:::*LISTEN  
tcp0  0 :::111  :::*LISTEN  
tcp0  0 :::80   :::*LISTEN  #80端口已经出现
tcp0  0 :::22   :::*LISTEN  
tcp0  0 ::1:631 :::*LISTEN  
tcp0  0 ::1:25  :::*LISTEN

关闭防火墙:

[root@localhost include]# iptables -F

用links浏览器测试:

程序包管理之编译安装apache

显示It works表明安装成功,并且服务已经开启。

原创文章,作者:YOUNG,如若转载,请注明出处:http://www.178linux.com/39503

(0)
YOUNGYOUNG
上一篇 2016-08-24 21:22
下一篇 2016-08-24 21:23

相关推荐

  • M20-1 8月3号作业

    1、三种权限rwx对文件和目录的不同意义 2、umask和acl mask 的区别和联系 3、三种特殊权限的应用场景和作用 4、设置user1,使之新建文件权限为rw——- 5、设置/testdir/f1的权限,使user1用户不可以读写执行,g1组可以读写 /testdir/dir的权限,使新建文件自动具有acl权限:user1:r…

    Linux干货 2016-08-05
  • sed基本用法

    Stream EDitor, 行编辑器  sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space), 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’的特殊命令, 那会在两个循环之间清空模式空间,但不会…

    Linux干货 2017-08-20
  • 硬链接与软链接的联系与区别

    硬链接与软链接的联系与区别 我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(ino…

    Linux干货 2016-10-23
  • 网络管理之基本概念

    本章内容     网络概念     OSI模型     网络设备     TCP/IP     IP 地址     配置…

    Linux干货 2016-09-08
  • LVS-fwm&persistence

    Evernote Export 1、LVS-fwm fwm:FireWall Mark        在netfilter上给报文打标记;mangle表;        ipvsadm -A|E -t|u|f service-address [-s scheduler] &nbs…

    Linux干货 2016-12-01
  • Second

    1、 linux 上的文件管理类命令都有哪些, 其常用的使用方法及相关示例演示 cat     concatenate file and print ont the standard output cat [OPTION]…[FILE]…      &nbsp…

    Linux干货 2016-12-13