源码编译安装http

为什么需要编译安装软件?

  1、软件在编译期间需要配置:比如需要指定安装路径,定制模块等功能;

  2、软件需要统一安装路径:在编译安装时可以方便指定这些路径;

  3、需要最新的版本:对于某些软件来说可能需要最新的版本。


编译前的准备工作:

    1、安装开发工具:make、gcc等

    2、安装开发包组:如centos 6的为:Development Tools


C代码编译安装三步骤:

   (一)./configure:

       (1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in生成makefile文件;

       (2)检查安装软件时需要依赖到的外部环境

   (二)make:make是项目管理器,会根据makefile文件的内容自动构建应用程序;

   (三)make install :复制文件到相应的路径

注意:在安装前请注意查看INSTALL、README文件,根据文档配置编译软件。


正式编译安装

  第一步:configure脚本

      选项:指定安装位置、指定启用的特性

      –help:获取其支持使用选项

  选项分类:

     安装路径设定:

        –prefix=/PATH:指定安装路径,默认为/usr/local

        –sysconfdir=/PATH:配置文件安装位置

      Optional Features:可选特性

        –disable-FEATURE

        –enable-FEATURE

      Optional Packages:可选包

        –with-PACKAGE:依赖包

        –without-PACKAGE:禁用依赖关系

  第二步:make

  第三部:make install

编译后的配置:

    在这里以http服务作为示例,httpd服务安装在/usr/local/httpd2路径下:

   1、man地址的配置路径

       centos 6 (/etc/man.config)(centos 6的man配置路径) 将httpd服务的man文档路径在配置文档中添加一条路径

       #every automatically generated MANPATH include these fields

       添加:

             MANPATH    /usr/local/httpd2/man

            centos 7 (/etc/man_db.conf)

   2、将httpd2的启动路径写入PATH

            vim /etc/profile.d/httpd2.sh

            PATH=$PATH:/usr/local/httpd2/bin

            . /etc/profile.d/httpd2.sh

   3、导入库文件路径

             编辑/etc/ld.so.conf.d/name.conf

             添加新的库文件所在目录至此文件中

             ldconfig –  :重新生成缓存

   4、做软链接到包的头文件

             ln -s /usr/local/httpd2/include /usr/include

示例:

   我以http服务的源码编译包做演示:

     一、./configure :配置makefile文件

         (1)解压源码包

      blob.png

        (2)运行.configure :指定路径启用的特性等:

       blob.png

     二、make&&make install

       blob.png

       编译成功,无报错

    三、配置man地址

        vim /etc/man_db.conf (centos 7的man配置文档的路径)

        (centos 6的man配置文档的路径为/etc/man.config)

      blob.png

      blob.png

         man文档配置成功

       blob.png

   四、将httpd的启动路径写入环境变量

        vim /etc/profile.d/httpd2.sh(最后的httpd2.sh可以自定义,但需要以.sh结尾)

        blob.png

        blob.png

    

   五、导入库文件路径

            vim /etc/ld.so.conf/httpd2.conf  (httpd2.conf可以自定义名称,需要以.conf结尾)

            blob.png

               blob.png

  六、做头文件的软链接

           blob.png

           blob.png

     至此,httpd的源码编译演示完成!

作业:

  

  1、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

  2、删除kernel包后,无法启动,并恢复之

 

  答案:

    1、冒泡算法,实现升序排序

    blob.png

  2、删除kernel包后,无法启动,并恢复  (centos 6)

   (1)删除rpm包

       blob.png

  (2)内核已删除,无法启动系统

    blob.png

 (3)在系统进入读条界面时,按一下esc键(只能按一下,不能多按)进入boot menu菜单,选择CD-ROM Drive 从光盘启动

    blob.png

 (4)选择紧急救援模式

  blob.png

  blob.png

 (5)挂载镜像文件

    blob.png

 (6)安装kernel,并指定根所在的路径,将rpm包安装到对应路径下

    blob.png

(7)系统重启成功!

blob.png

原创文章,作者:因为有你,如若转载,请注明出处:http://www.178linux.com/39789

(0)
因为有你因为有你
上一篇 2016-08-24
下一篇 2016-08-24

相关推荐

  • centos7配置bindDNS解析服务

    首先来概述一下 通俗一点理解呢,DNS就是把域名转换成IP的一种服务(反向则是IP转换成域名).以方便人们的记忆,就好比记住一个代表性的英文要比记住电话号码快得多,通常我们将这种服务称之为解析.现在一般公网都有万网 腾讯云这些机构,DNS这一块我们不需要负责.但是在现在企业的内部网则就需要我们来搭建DNS服务器了.本次采用的bind工具进行域名的解析。 1.…

    Linux干货 2018-03-26
  • 关于大型网站技术演进的思考(五):存储的瓶颈(5)

    原文出处: 夏天的森林    上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉得…

    Linux干货 2015-03-11
  • LAMP搭建wordpress博客站点

    使用WordPress可以搭建功能强大的网络信息发布平台,但更多的是应用于个性化的博客。针对博客的应用,WordPress能让您省却对后台技术的担心,集中精力做好网站的内容。本文将教您如何通过LAMP搭建自己的wordpress博客站点。 LAMP听起来很高大上,其实是集中技术合起来的称呼: L:linux A:apache httpd M:mysql、ma…

    2017-06-01
  • 纯文本配置还是注册表

    我们知道Unix/Linux下的程序配置文件从来都是纯文本的,你可以自由地修改和查看,他们也没有什么什么XML之类的玩意(参看XML的这两篇文章:一,二),这个最重要的Unix文化(参看Unix传奇下篇)40多年来就这么沿续下来了。我很佩服Microsoft的创新能力,一会儿用INI,一会儿用注册表,一会又是用XML,这就是Windows的编程中那“强大”的…

    Linux干货 2016-08-15
  • Puppet学习之puppet的安装和配置

    一、Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。 二、Puppet的安装 Puppet的安装方式支持源码安装、yum安装以及r…

    2017-09-25
  • N25-第三周作业

    N25第三周作业 博客作业 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@ip-172-31-25-9 ~]# who|awk '{print $1}'|sort -u ec2-user [root@ip-172-31-25-9&n…

    Linux干货 2017-02-06