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

那么本篇博客主要是写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参数并指明路径就行了

【程序包管理】Linux软件管理之src源码安装编译的更多相关文章

  1. linux下MySQL 5.6源码安装

    linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ...

  2. Linux中源码安装编译Vim

    Linux中源码安装编译Vim Linux下学习工作少不了编辑器,Vim能使你的工作效率成倍的提高.在Ubuntu上安装vim使用命令直接安装很简单.但有时还是需要自己手动编译安装.例如: vim中的 ...

  3. Linux 系统安装配置PHP服务(源码安装)

    简介: PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要 ...

  4. linux应用之nginx的源码安装及配置(centos)

    1.准备工作选首先安装这几个软件:GCC,PCRE(Perl Compatible Regular Expression),zlib,OpenSSL.Nginx是C写的,需要用GCC编译:Nginx的 ...

  5. Linux基础3(用户/组管理,rpm,yum,源码安装软件)

    用户管理 与用户相关的配置文件 /etc/passwd /etc/shadow /etc/skel /etc/defalut/useradd /etc/login.defs useradd userm ...

  6. linux应用之apache的源码安装(centos)

    第一部分:前期准备 需要下载的东西 下载 Apache 源码包  下载地址: http://httpd.apache.org/download.cgi                          ...

  7. linux 系统安装配置 zabbix服务(源码安装)

    简介: zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定 ...

  8. linux下PostgreSQL数据库的源码安装

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  9. linux系统安装配置exim4(源码安装)

    一.Exim4概述 Exim是一个MTA(Mail Transfer Agent,邮件传输代理)服务器软件,该软件基于GPL协议开发,是一款开源软件.该软件主要运行于类UNIX系统.通常该软件会与Do ...

随机推荐

  1. C构造类型 数组

    一.数组是什么 一组有个固定大小.相同数据类型的数据的集合. 数组可以分为:一维数组.二维数组.三维数组....(维数不止一维:多维数组) 表格 : 行和列(二维数组) 二.一维数组 1.一般形式 类 ...

  2. uniapp cli版本中如何引入scss?

    一.安装依赖 npm i node-sass@4.14.1 sass-loader -D 二.在脚手架版本新建项目成功后,官方为我们准备了uni.scss文件,在这个里面写即可全局使用. ... 一. ...

  3. 这可能是最为详细的Docker入门总结

    写在前面 毕设是关于区块链的,自然就用到了docker,感觉到了docker的强大.学习源于总结,所以找了一些资料,这篇文章原作写的不错,看了好多遍哈哈. 这可能是最为详细的Docker入门总结 市面 ...

  4. moviepy音视频剪辑:视频剪辑基类VideoClip详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>和<moviepy音视频剪辑:moviepy中的剪辑基类Cl ...

  5. 转:http协议学习系列(响应头---Response Headers)

    HTTP最常见的响应头如下所示: ·Allow:服务器支持哪些请求方法(如GET.POST等): ·Content-Encoding:文档的编码(Encode)方法.只有在解码之后才可以得到Conte ...

  6. 第9.4节 Python中用readline读取二进制文件方式打开文件

    在<第9.3节 Python的文件内容读取:readline>中介绍了使用readline读取文件的处理,readline除了使用文本文件方式打开文件读外,也可以读取二进制方式打开的文件, ...

  7. PyQt(Python+Qt)学习随笔:Qt Designer中spacer部件的orientation属性

    在Designer的spacers部件中有2个部件,分别是Horizontal Spacer和Vertical Spacer,这两个部件都有orientation属性,表示Spacer部件的方向. 如 ...

  8. (转)MySQL优化原理

    原文:https://mp.weixin.qq.com/s__biz=MzI4NTA1MDEwNg==&mid=2650763421&idx=1&sn=2515421f09c1 ...

  9. c++11-17 模板核心知识(十四)—— 解析模板之依赖型模板名称(.template/->template/::template)

    tokenization与parsing 解析模板之类型的依赖名称 Dependent Names of Templates Example One Example Two Example Three ...

  10. MySQL入门看这一篇就够了

    MySQL JavaEE:企业级Java开发 web阶段 分为1.前端(页面,展示数据库中的数据) 2.后台(连接点:链接数据库JDBC.Mybatis,链接前端(控制视图跳转,给前端传递数据)) 3 ...