源码编译安装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

相关推荐

  • Sed文本文件工具的使用详解

    Sed文本文件工具的使用详解 一、概述 sed 工具实际上就是一个非交互式的编辑器,主要是为了处理文本而生的,我们知道处理文本的三剑客是 grep sed awk 我们之前学习过 grep 文本过滤工具,它的主要作用是为了过滤文本,而sed 工具也是过滤文本,只不过sed工具针对的是文件中的每一行,而且sed工具更加强大,下面还具体说明一下sed 工具的原理…

    Linux干货 2016-10-09
  • 脚本实现httpd创建虚拟主机

    概述 本文使用脚本实现基于主机名的虚拟主机按需创建: 脚本可接受参数,提供独立站点目录; 生成独立站点首页; 脚本可接受参数,参数虚拟主机名称; 每虚拟使用单独的配置文件; 脚本可接受参数,参数虚拟主机名称; 环境 系统基于CentOS7.2,并通过yum安装httpd 2.4.6 建议关闭防火墙和selinux。 演示   客户机将域名解析写入/…

    Linux干货 2016-10-08
  • grep虐我千百遍,我待grep如初恋

    N21第四周博客作业 1、  复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@Centos6 ~]# cp -r /etc/skel /home/tuser1 [root@Centos6 ~]#…

    Linux干货 2016-07-16
  • 进程管理之工作管理详解(job control)

    进程管理之工作管理详解(job control) 1 什么是工作管理(job control)   我们知道linux是多任务多终端工作的操作系统。我们可以在多个终端进行工作,也可以在一个终端进行多个任务工作。那在一个终端同时进行多个工作任务,就称为工作管理。比如这种情况,在一个终端,你想要复制文件,同时你还想压缩打包文件,甚至你还想编辑文件,这个…

    Linux干货 2017-05-14
  • Hadoop集群配置(最全面总结)

    通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\ 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.ht…

    Linux干货 2015-04-13