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

那么本篇博客主要是写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. MySql学习笔记--详细整理--下

    目录 索引 测试索引 索引原则 权限管理和备份 备份 规范数据库设计 三大范式 JDBC JDBC程序 Statement对象 工具类实现 sql注入 PreparedStatement对象 事务 数 ...

  2. Non Super Boring Substring 题解(hash+思维)

    题目链接 题目大意 给你一个长度为d(d<=1e5)的字符串,要你求有多少个子串满足这个子串不包含长度大于等于k的回文子串 题目思路 首先可以hash预处理,然后O(1)用前缀hash值和后缀h ...

  3. C++反射机制:可变参数模板实现C++反射(二)

    1. 概要   2018年Bwar发布了<C++反射机制:可变参数模板实现C++反射>,文章非常实用,Bwar也见过好几个看了那篇文章后以同样方法实现反射的项目,也见过不少从我的文章抄过去 ...

  4. CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的详细解析

    本文主要介绍和对比我们常用的几种并发工具类,主要涉及 CountDownLatch . CyclicBarrier . Semaphore . Exchanger 相关的内容,如果对多线程相关内容不熟 ...

  5. SQL优化思路与解决方案

    1.面对问题SQL的思考 这条查询SQL的语句到底有没有问题? 存在什么问题? 什么情况下存在问题? 怎么去优化? 2.SQL优化思路 where查询字段是否建立索引? 是否有建立索引但是查询时候没有 ...

  6. CentOS 使用文件增加Swap空间

    使用硬盘文件增加swap空间 ///创建文件 dd if=/dev/zero of=/SWAP/swapfile bs=1M count=1000 ///格式化 mkswap /SWAP/swapfi ...

  7. 20200311_最新爬取mzitu

    废话不多, 直接上代码, python3.6: import requests from bs4 import BeautifulSoup import os import time; import ...

  8. 从代码角度理解NNLM(A Neural Probabilistic Language Model)

    其框架结构如下所示: 可分为四 个部分: 词嵌入部分 输入 隐含层 输出层 我们要明确任务是通过一个文本序列(分词后的序列)去预测下一个字出现的概率,tensorflow代码如下: 参考:https: ...

  9. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项标记flags相关方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeWidgetItem项可以通过flags()返回项的标记,返回值类型为类型Qt.ItemF ...

  10. 在.Net中所有可序列化的类都被标记为_

    [Serializable] 这个叫Attribute写在类.属性.字段的上面,比如 [Serializable] class A { ... }