zoukankan      html  css  js  c++  java
  • 【程序包管理】Linux软件管理之src源码安装编译

    在很多时候我们需要自定义软件的特性,这时就需要用到源码安装。那么,网上有很多编译源码的工具,那么,我们怎么知道别人使用的是什么工具呢。其实我也不知道(*^▽^*)。

    那么本篇博客主要是写C代码的源码安装。

    什么都不说,直接先上来总结源码安装的四步骤:

    第一步:./configure:    【当然,我们在这步骤之前还必须解压源码包】
         (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile
         (2) 检查依赖到的外部环境
    第二步:make:
          根据makefile文件,构建应用程序;
    第三步:make install

    第四步:安装后的配置选项

    【其实后两步很简单,重点是第一步和第四步】

    上面只是小小的总结了一下,那么具体怎么实现的,GG

    1、我们怎么去获取源码包

    官方自建站点:
         apache.org (ASF)
         mariadb.org
                    ...
    代码托管:
         SourceForge
         Github.com
         code.google.com

    2、就是一个大难题了,编译C源代码

          前提:提供开发工具及开发环境
                  开发工具:make, gcc等
                  开发环境:开发库,头文件
                      glibc:标准库

                    通过“包组”提供开发组件
                        CentOS 6上面主要安装这两个开发包组件: "Development Tools", "Server Platform Development"

          第一步:configure脚本

              我们必须要提供一些参数给脚本:如指定安装位置、指定启用特性等,这时我们可以使用命令: ./configure --help 来获取其支持使用的选项。

    选项分类:
    Configuration: 

    Installation directories: 安装路径设定

        --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/
        --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;

    System types: 目标系统平台结构  【注意:只有在交叉编译的时候才用到该选项】

    Optional Features: 可选性

        --disable-FEATURE
        --enable-FEATURE[=ARG]

    Optional Packages: 依赖到的程序包,是定义依赖关系的

        --with-PACKAGE[=ARG]
        --without-PACKAGE

    Some influential environment variables: 可能会影响环境变量的东东 

    第二步:执行”make“命令

    第三步:执行“make install”

    到这里我们就可以启用了,现在到我们安装路径下去启动(因为我们还没有对程序进行配置)
     这里就简单的启动一下吧
          到我们安装位置,执行启动命令:如  ./apachectl start

    第四步:安装成功后的配置选项:

    (1)导出二进制程序目录至PATH环境变量中,【如果不导出的话我们只能够使用绝对路径访问他】
           编辑配置文件: /etc/profile.d/NAME.sh    创建一个脚本文件
                                    在里面添加环境变量:export PATH=/PATH/TO/BIN:$PATH

    (2)导出库文件路径
           编辑 /etc/ld.so.conf.d/NAME.conf       创建一个配置文件,添加新的库文件所在目录至此文件中
              让系统重新生成缓存: 命令:ldconfig [-v]

    (3)导出头文件
            方法一:去安装目录下,把include头文件复制到/usr/include目录下
            方法二:基于链接的方式实现
                ln -sv 源文件  软连接文件
    (4)导出帮助手册
            编辑 /etc/man..config 文件, 在里面添加一个MANPATH参数并指明路径就行了
  • 相关阅读:
    用Python实现QQ找茬游戏外挂工具
    Python常用模块
    将Qt 动态链接生成的exe及依赖dll打包方法
    Qt之VLFeat SLIC超像素分割(Cpp版)
    android studio下的NDK开发详解(一)
    条件注释判断浏览器版本<!--[if lt IE 9]>
    人脸识别中的八大难题,何时能解
    人脸识别简史与近期进展
    openCV之头文件分析
    看(学习)代码流程
  • 原文地址:https://www.cnblogs.com/l75790/p/9207844.html
Copyright © 2011-2022 走看看