• 程序包编译安装


     
    先说个特殊的源码安装:testapp-VERSION-release.src.rpm --> 有src字样的RPM包安装后,需要使用rpmbuild命令制作成二进制格式的rpm包,而后再安装;
     
    一. 编译的基本知识和编译前提
             
    C、C++中,有一个专门的项目管理工具:make,根据make的配置文件makefile来自动进行源码安装,而makefile的生成过程:(configure --> Makefile.in(相当于一个模板) --> makefile)
                 
      1)相关开发工具:
                    autoconf: 生成configure脚本
                    automake:生成Makefile.in
                建议:安装前查看INSTALL,README
     
      2)开源程序源代码的获取:
                官方自建站点:
                         mariadb.org
                         apache.org(ASF)
                          ...
                代码托管:
                    SourceForge
                    Github.com
                    code.google.com
     
          
      3)编译C源代码前提:提供开发工具及开发环境         
                    开发工具:make, gcc等
                    开发环境:开发库,头文件,例如glibc:标准库
                    通过“包组”提供开发组件
                        CentOS 6: "Development Tools", "Server Platform Development", desktop platform development(开发有图形界面东西的时候需要)
     
     
    二.    C代码编译安装三步骤:
     
               1)     ./configure:
                        (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指令以及Makefile.in文件生成makefile;
                        (2) 检查各启用特性所依赖到的外部环境;比如某个特性需要依赖外部的某个程序包,如果这个程序包不存在就会报错。
     
                        --help: 获取其支持使用的选项,不同源码支持的选项不一样
     
                        选项分类:
                            安装路径设定:
                                --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
                                --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置,不指明的话就安装在/usr/local目录下;
                            例如: ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2
                            
               2)make:根据makefile文件,构建二进制应用程序;
                        
               3)make install:其实相当于cp命令,把相应的文件复制到指定目录
       
         
    三.  安装后的配置:
                (1) 导出二进制程序目录至PATH环境变量中;
                    编辑文件/etc/profile.d/NAME.sh---创建一个新的
                        export PATH=/PATH/TO/BIN:$PATH
     
                (2) 导出库文件路径
                    编辑/etc/ld.so.conf.d/NAME.conf,添加新的库文件所在目录至此文件中; 
                    让系统重新生成缓存: ldconfig [-v] ---参数v是显示过程
                       
                (3) 导出头文件
                    基于链接的方式实现:
                        ln -sv  ---可以导出整个目录为一个符号链接,也可以导出单个文件为一个符号链接
     
                (4) 导出帮助手册
                    编辑/etc/man.config文件,添加一个MANPATH路径,例如添加MANPATH /usr/local/apache2/man
     
     
  • 相关阅读:
    完全备份、差异备份以及增量备份的区别(转)
    Backup Exec Inventory 与Catalog的含义(转载)
    从客户端中检测到有潜在危险的Request.Form值的解决办法
    IQueryable与IEnumberable的区别(转)
    SQL递归查询(with cte as) 物料分解
    Http权威指南笔记(二) Http状态码大全
    Http权威指南笔记(一) URI URL URN 关系
    echarts在.Net中使用实例(二) 使用ajax动态加载数据
    echarts在.Net中使用实例(一) 简单的Demo
    sql显示12个月数据
  • 原文地址:https://www.cnblogs.com/regit/p/7762084.html
Copyright © 2020-2023  润新知