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

那么本篇博客主要是写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. P1633 二进制

    首先将 \(A,B,C\) 二进制中 \(1\) 的个数和最大长度 \(L\) 算出来. 接着考虑二进制位相加的情况: 低位不进上来. \(X\) 和 \(Y\) 中的两个 \(1\) 合成 \(Z\ ...

  2. 自动化运维工具之Puppet基础入门

    一.简介 puppet是什么?它能做什么? puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期:比如,安装服务,提供配置文件,启动服务等等一系列操作:基于pu ...

  3. Linux(Ubuntu16.04)下的MediaWiki的部署启动

    一.服务器部分 使用XAMPP配置MediaWiki部署所需要的环境. 1. 查看服务器的版本与位数: sudo lsb_release -a      //查看系统版本 uname -a       ...

  4. Alpha冲刺-第五次冲刺笔记

    Alpha冲刺-冲刺笔记 这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE2 这个作业要求在哪里 https://edu.cnblogs. ...

  5. 虚拟机下Ubuntu共享文件夹不能显示的一种解决方法

    原文链接:https://blog.csdn.net/huyangzhilin/article/details/70666937

  6. 【GDOI2014模拟】JZOJ2020年8月14日T2 网格

    [GDOI2014模拟]JZOJ2020年8月14日T2 网格 题目 Time and Memory Limits Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标 ...

  7. 使用Verilog搭建一个单周期CPU

    使用Verilog搭建一个单周期CPU 搭建篇 总体结构 其实跟使用logisim搭建CPU基本一致,甚至更简单,因为完全可以照着logisim的电路图来写,各个模块和模块间的连接在logisim中非 ...

  8. 《Machine Learning in Action》—— 浅谈线性回归的那些事

    <Machine Learning in Action>-- 浅谈线性回归的那些事 手撕机器学习算法系列文章已经肝了不少,自我感觉质量都挺不错的.目前已经更新了支持向量机SVM.决策树.K ...

  9. ADF 第二篇:使用UI创建ADF

    用户可以通过UI来创建ADF,在UI中创建ADF时,用户不需要下载单独的IDE,而仅仅通过 Microsoft Edge 或者 Google Chrome浏览器.用户登录Azure Portal,选择 ...

  10. 【补题记录】NOIp-提高/CSP-S 刷题记录

    Intro 众所周知原题没写过是很吃亏的,突然发现自己许多联赛题未补,故开此坑. 在基本补完前会持续更新,希望在 NOIp2020 前填完. 虽然是"联赛题",但不少题目还是富有思 ...