源码编译安装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 21:21
下一篇 2016-08-24 21:21

相关推荐

  • 第一周的学习总结

       本人是Linux 小白,0基础。加入马帮开始Linux之旅。由于完全不懂Linux,所以在学习的过程中,每课都要看上2遍。接下来说说我第一周所学的内容。 首先是了解到了计算机基础知识,计算机的组成部分、CPU架构类型、其他外围设备。 操作系统基础知识进程管理、内存管理、网络管理、驱动管理、安全管理等。 Linux的起源、发行版以及构…

    Linux干货 2016-02-28
  • 计划任务管理

        Linux系统计划任务有两种:A、一次性任务;B、定时循环任务。     一次性任务:at命令。at的安装包名字就是at,可以使用命令"yum install at"进行安装.安装完成后,启用atd服务就可以运行at命令了.运行格式为:at [opti…

    Linux干货 2016-11-27
  • N25-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;~]#fdisk -l #查看已有分区 设备 Boot Start End Blocks Id System/dev/sda1 * 2048 8194047 4096000 83 Linux/dev/sda2 8194048 24578047 8192000 82 Linux swap / Solaris~]…

    Linux干货 2017-02-24
  • 模拟centos6.8系统下initramfs文件和vmlinuz文件损坏恢复

    实验一:关于删除initramfs-2.6.32-642.el6.x86_64.img 文件恢复实验,实验环境centos6.8系统 1.安全起见,请先安排做快照及备份 把initramfs-2.6.32-642.el6.x86_64.img 文件复制一份/root目录下。 [root@centos6: boot]# cp -a initramfs-2.6.…

    2017-05-15
  • 第十周练习-脚本部分

    1、写一个脚本 (1) 能接受四个参数:start, stop, restart, status start: 输出“starting 脚本名 finished.” … (2) 其它任意参数,均报错退出; #!/bin/bash # case $1 in start)     echo&…

    Linux干货 2016-12-31
  • linux中用户、组和权限认识

    linux中用户、组和权限认识 Linux 用户和组的主要配置文件:/etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)                  …

    Linux干货 2017-02-23