一、源码包基本概述

1️⃣:源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言

2️⃣:Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件

3️⃣:如果你的机器上没有安装gcc就没有办法去编译源码。可以使用yum install -y gcc来完成安装

二、源码包的好处

1️⃣:自定义修改源代码

2️⃣:定制需要的相关功能

3️⃣:新版软件优先更新源码

三、源码包的获取

官方网站, 可以获得最新的软件包

1️⃣:Apache官方网站:http://apache.org

2️⃣:Nginx官方网站:http://nginx.org

3️⃣:Mysql官方网站:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

四、源码包的分类

1️⃣:源码格式(需要编译安装)

2️⃣:二进制格式(解压后可以直接使用)

五、源码包的安装

1️⃣:编译需要编译环境,开发环境,开发库,开发工具。

2️⃣:常用的编译环境有c、c++、perl、java、python共5种

3️⃣:c环境的编译器:gcc(GNU C Complier)

4️⃣:c++环境的编译器:g++

5️⃣:make:c、c++的统一项目管理工具,编译时有可能调用gcc也有可能调用g++;使用makefile文件定义make按何种次序去编译源程序文件中的源程序

六、源码安装三部曲

1、第一步:/.configure (定制组件)

  • 指定安装路径,例如 --prefix=/opt/nginx-1.12
  • 启用或禁用某项功能, 例如 --enable-ssl
  • 和其它软件关联,例如--with-pcre
  • 检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求
  • 检测通过后生成Makefile文件

2、第二步:make

  • 执行make命令进行编译, 可以使用-j指定CPU核心数进行编译
  • 按Makefile文件进行编译, 编译成可执行二进制文件
  • 生成各类模块和主程序

3、第三步:make install

  • 按Makefile定义好的路径拷贝至安装目录中

注释:源码三部曲不能百分百通用于所有源码包, 也就是说源码包的安装并非存在标准安装步骤,但是大部分源码安装都是类似的步骤

七、configure脚本的功能

  • 让用户选定编译特性
  • 检查编译环境是否符合程序编译的基本需要

八、编译安装注意事项

1、如果安装时不是使用的默认路径,则必须要修改PATH环境变量,以能够识别此程序的二进制文件路径;

  • 修改/etc/profile文件或在/etc/profile.d/目录建立一个以.sh为后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere

2、默认情况下,系统搜索库文件的路径只有/lib,/usr/lib

  • 增添额外库文件搜索路径方法:

    • 在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中
    • 此时库文件增添的搜索路径重启后有效,若要使用增添的路径立即生效则要使用ldconfig命令
  • ldconfig:通知系统重新搜索库文件

3、头文件:输出给系统

  • 默认:系统在/usr/include中找头文件,若要增添头文件搜索路径,使用链接进行

4、man文件路径:安装在--prefix指定的目录下的man目录

  • 默认:系统在/usr/share/man中找man文件
  • 默认:系统在/usr/share/man中找man文件:
    • man -M /path/to/man_dir command
    • 在/etc/man_db.conf文件中添加一条MANPATH

Linux_源码安装包管理理论概述的更多相关文章

  1. Linux 环境编译安装mysql (源码安装包)

    标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客  http://www.cnblogs.com/zoulo ...

  2. llinux 环境安装编译 nginx (源码安装包)

    简介: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国 ...

  3. apache svn subversion安装和配置(使用源码安装包方式)

    环境:虚拟机下centos7 1.下载安装包:http://subversion.apache.org/download.cgi 2.上传到指定文件夹并解压 3.安装依赖包 apr apr-utils ...

  4. 手动编译源码安装包报错 fatal error:cruses.h: no such file or direcrory

    很明显是缺少cruses.h这个文件,但是用yum搜索又搜不到,可能是我的yum源的库包太少的原因吧. 后来多方查找,发现cruses.h这个头文件属于ncurses模块,需要安装ncurses-de ...

  5. linux内存源码分析 - SLUB分配器概述

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB ...

  6. FFmpeg的HEVC解码器源码简单分析:概述

    ===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...

  7. 带着问题学 Spring MVC 源码: 一、概述

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 简单就好,生活可以很德国 Q:什么是 Spring MVC ? ※ Spring MVC 是 S ...

  8. shopnc 商城源码阅读笔记--开篇概述

    关于shopnc 以下是摘抄自百度百科的关于shopnc的介绍: ShopNC商城系统,是天津市网城天创科技有限责任公司开发的一套多店模式的商城系统. 本系统具有商城系统非常完整和专业的功能与流程,系 ...

  9. 【Spark2.0源码学习】-1.概述

          Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...

随机推荐

  1. Redis解读(1):Redis安装启动及常见数据类型

    Redis 简介 Redis 是我们在互联网应用中使用最广泛的一个 NoSQL 数据库,基于 C 开发的键值对存储数据库. Redis 这个名字是 Remote Dictionary Service ...

  2. Python基础(二十一):面向对象“类”第四课——魔法方法

    先划一下重点: 6个魔法方法: 动态操作属性的4个函数: 魔法方法 魔法方法的简单介绍 魔法方法的命名规则:方法名(前后各有2个下划线). 通常情况下,不会主动去调用魔法方法,而是在满足一定的条件下, ...

  3. 北航OO第一单元作业总结(Retake)

    前言:当我写这篇博客的时候,我的心情是复杂的,因为这实际上是我第二次写这篇博客--我今年重修的这门课.我对去年的成绩心有不甘--在激烈的竞争下,我虽然尽可能完成了所有作业(仅一次作业未通过弱测),但爆 ...

  4. 跟我一起学Go系列:从写测试用例开始仗剑走天涯

    从入门到深入 Go 我们已经走了很长的路,当你想启动多个测试类的时候你是不是想启动多个 main 方法,但是 Go 限制了在同一个 package 下只能有一个 main,所以这条路你是走不通的.那我 ...

  5. Spring Boot XSS 攻击过滤插件使用

    XSS 是什么 XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与 CSS(Cascading Style Sheets)名词混淆,故将跨站脚本攻击简称为 XSS,XSS ...

  6. JAVAEE_Servlet_07_设置网站欢迎页面

    Web站点的欢迎页面的设置 * 欢迎页面怎么设置? - 假设在WebContent下创建login.html,想让login.html作为站点的欢迎页面. - 打开web.xml文件,添加<we ...

  7. 所谓 ICMP,不过将军与士卒而已

    什么是 ICMP 协议 关于这点我们在 IP 协议那篇文章中提过一嘴,IP 协议作为一种提供不可靠数据交付的网络层协议,在传输的过程中,其 IP 数据报可能会发生丢失.重复.延迟和乱序等各种情况, 但 ...

  8. OO Unit3 总结

    OO Unit3 总结 OO课Unit3人际关系网JML应用技术回顾 BUAA.1823.邓新宇 2020/5/23 梳理JML语言的理论基础.应用工具链情况 方法规格 JML中,同一个方法在不同的条 ...

  9. G - Number Transformation(BFS+素数)

    In this problem, you are given an integer number s. You can transform any integer number A to anothe ...

  10. hdu4975 行列和构造矩阵(dp判断唯一性)

    题意:       和hdu4888一样,只不过是数据加强了,就是给你行列的和,让你构造一个矩阵,然后判断矩阵是否唯一. 思路:       构造矩阵很简单,跑一次最大流就行了,关键是判断矩阵的唯一性 ...