码迷,mamicode.com
首页 > 系统相关 > 详细

马哥linux学习笔记:源码编译安装

时间:2015-12-26 23:51:54      阅读:610      评论:0      收藏:0      [点我收藏+]

标签:马哥linux 源码编译

 由于rpm包在作者制作封装的时候已经把程序的一些特性固定了,如果我们根据自己的需求,需要运用程序的一些没有普适性相关特性,就需要下载程序的源码手动编译安装了,这里只是简单的介绍一下C代码的程序包编译安装方法。

    为了能更直观的看到源码编译安装的过程,我演示一下在centos7.2环境中编译安装httpd2.2:

    首先,编译的前提是得有称手的工具及环境了,编译c源代码就需要用到开发工具,make,gcc了,环境就需要开发库跟头文件了,如果系统中没有这些,就需要yum安装了。

    这里我运行yum group install Development Tools安装开发环境组件

        技术分享技术分享

    安装好开发环境后,开始解压下载好的httpd-2.2.29.tar.bz2,并切换到httpd-2.2.29目录

    [root@localhost test]# tar -jxf httpd-2.2.29.tar.bz2 

    [root@localhost test]# ls

        httpd-2.2.29  httpd-2.2.29.tar.bz2

    [root@localhost test]# cd httpd-2.2.29

    技术分享技术分享

    现在可以开始编译httpd2.2.29了,我们可以先察看一下目录下的README,INSTALL文件,可以初步了解一下该软件的一些简介及其通常的编译安装方法:

    技术分享技术分享

    执行./configure -h可以先查看一下configure脚本的帮助信息,查看一下软件的一些安装选项,不同的软件的configure不尽相同,但是一般都有以下的特点:

        1.指定安装路径

                   --prefix=前缀,用于指定安装路径

                   --sysconfdir=/etc/package_name

        2.指定启动/禁用的特性

                 --enable-feature:例如--enable-fpm

                 --disable-fecture;例如 --disable-socket

         3.指定所依赖功能、程序或文件

                 --with-function: 启用某功能

                 --without-function: 禁用某功能

    这里我们只是简单的指定httpd的安装路径,如有特殊的需求,请参考configure的帮助信息,自行添加或关闭软件特性。

        注意,由于这里只是测试,我把服务安装到了root的家目录下,要运行起服务并允许外部主机能够访问需要给root的家目录给予rx权限,生产环境不建议如此操作,尽量安装到/usr/local/等目录下,切记!

    [root@localhost httpd-2.2.29]# ./configure --prefix=/root/test/httpd2.2

       技术分享技术分享

    [root@localhost httpd-2.2.29]# make && make install

        技术分享技术分享

    至此,httpd2.2的编译安装已经完成,就是这么简单,赶紧动手试试哇。我们启动自己手动编译安装的httpd看看哇:

        技术分享技术分享

    可以看到编译安装的httpd服务已经开始运作起来了,不过貌似启动起来好麻烦,得切换到安装的目录的bin目录下,要是能直接在命令行的任何路径下都能管理启动或是关闭就好了,这就是我们编译安装后的一些后续工作了:

        1.导出二进制程序目录至PATH环境变量中;

            编辑文件/etc/profile.d/httpd2.2.sh文件,在文件中写入下边一行即可;(注意,httpd2.2.sh文件并不存在,创建即可)

                export PATH=/root/test/httpd2.2/bin

            保存退出,要让此设置即刻生效,需要在当前目录下执行命令

                source httpd2.2.sh

            现在我们就可以在系统的任何路径下打开或关闭httpd服务了,而不用记住那一长串的路径了

        2.导出库文件路径;

            编辑/etc/ld.so.conf.d/httpd2.2.conf;        注意:httpd2.2文件不存在,需自行创建

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

                    /root/test/httpd2.2/lib

                让系统重新生成缓存:

                    ldconfig [-v]

                         -v查看详细内容

            技术分享技术分享

        3.导出头文件

                基于链接的方式实现:

                    ln -sv  /root/test/httpd2.2/include /usr/include/httpd2.2

        4.导出帮助手册

            编辑/etc/man_db.conf文件,加入一个MANPATH;        注意:centos6.x系列中为/etc/man.config文件

             技术分享技术分享

            man apachectl

             技术分享技术分享

        至此,编译安装的工作完成,赶紧动手试试哇!


本文出自 “amengmon” 博客,请务必保留此出处http://amengmon.blog.51cto.com/10985711/1728544

马哥linux学习笔记:源码编译安装

标签:马哥linux 源码编译

原文地址:http://amengmon.blog.51cto.com/10985711/1728544

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!