Linux_源码安装包管理理论概述
一、源码包基本概述
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_源码安装包管理理论概述的更多相关文章
- Linux 环境编译安装mysql (源码安装包)
标注: Linux需要先配置网络yum源,确定yum能在线安装软件包,方便测试过程中安装部分依赖包.配置163网易提示的网络yum源参考博客 http://www.cnblogs.com/zoulo ...
- llinux 环境安装编译 nginx (源码安装包)
简介: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国 ...
- apache svn subversion安装和配置(使用源码安装包方式)
环境:虚拟机下centos7 1.下载安装包:http://subversion.apache.org/download.cgi 2.上传到指定文件夹并解压 3.安装依赖包 apr apr-utils ...
- 手动编译源码安装包报错 fatal error:cruses.h: no such file or direcrory
很明显是缺少cruses.h这个文件,但是用yum搜索又搜不到,可能是我的yum源的库包太少的原因吧. 后来多方查找,发现cruses.h这个头文件属于ncurses模块,需要安装ncurses-de ...
- linux内存源码分析 - SLUB分配器概述
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB ...
- FFmpeg的HEVC解码器源码简单分析:概述
===================================================== HEVC源码分析文章列表: [解码 -libavcodec HEVC 解码器] FFmpeg ...
- 带着问题学 Spring MVC 源码: 一、概述
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! 简单就好,生活可以很德国 Q:什么是 Spring MVC ? ※ Spring MVC 是 S ...
- shopnc 商城源码阅读笔记--开篇概述
关于shopnc 以下是摘抄自百度百科的关于shopnc的介绍: ShopNC商城系统,是天津市网城天创科技有限责任公司开发的一套多店模式的商城系统. 本系统具有商城系统非常完整和专业的功能与流程,系 ...
- 【Spark2.0源码学习】-1.概述
Spark作为当前主流的分布式计算框架,其高效性.通用性.易用性使其得到广泛的关注,本系列博客不会介绍其原理.安装与使用相关知识,将会从源码角度进行深度分析,理解其背后的设计精髓,以便后续 ...
随机推荐
- [Fundamental of Power Electronics]-PART I-4.开关实现-4.2 功率半导体器件概述
4.2 功率半导体器件概述 功率半导体设计中最根本的挑战是获得高击穿电压,同时保持低正向压降和导通电阻.一个密切相关的问题是高压低导通电阻器件的开关时间更长.击穿电压,导通电阻和开关时间之间的折衷是各 ...
- oo第二单元博客总结
P1 设计结构 三次作业的架构都没有较大的改动,基本上都是靠调度器接受输入的请求并放入队列,然后调度器根据不同的电梯的当前状态来把请求分配至不同电梯的请求队列中,最后电梯再根据自己的请求队列去运行.因 ...
- Java(81-93)【数组】
1.省略格式 静态初始化的时候格式还可以省略一下 int[ ] arrayA={10,20,30}; 静态和动态都可以拆 int[] arrayB; arrayB=new int[ ]{11,21,3 ...
- redhat7.6 Tomcat下安装 Jenkins 安装wget文件下载
安装wget下载工具 # 查看是否安装wget rpm -qa | grep wget #使用yum安装wget yum -y install wget 使用wget工具下载到 /usr/share ...
- 哈工大LTP基本使用-分词、词性标注、依存句法分析、命名实体识别、角色标注
代码 import os from pprint import pprint from pyltp import Segmentor, Postagger, Parser, NamedEntityRe ...
- Hangfire在ASP.NET CORE中的简单实现方法
hangfire是执行后台任务的利器,具体请看官网介绍:https://www.hangfire.io/ 新建一个asp.net core mvc 项目 引入nuget包 Hangfire.AspNe ...
- Android最新敲诈者病毒分析及解锁
一.情况简介 从去年开始PC端的敲诈者类病毒在不断的爆发,今年年初的时候手机上也开始出现了敲诈者之类的病毒,对这类病毒很无语也是趋势,因为很多时候病毒的产生是和金钱利益相关的.前天去吾爱破解论坛病毒样 ...
- POJ2709 染料贪心
题意: 要搭配出来n种颜料,每种颜料要用mi升,除了这n种颜色还有一个合成灰色的毫升数,灰色是由三种不同的颜色合成的,三种m m m 的不同颜色能合成m升灰色,然后问你满足要求至少要多少盒 ...
- XML / HTML / XHTML 的区别
目录 HTML XML XHTML HTML HTML(HyperText Markup Language):超文本标记语言,是一种用于创建网页的标准标记语言,是用来格式化并显示数据的 用HTML语法 ...
- Python脚本与Metasploit交互进行自动永恒之蓝攻击
我们首先利用 findTarget() 函数找到目标网段或目标主机中开放了445端口的主机,然后利用 confickerExploit() 函数将攻击代码写入 configure.rc 配置文件中,最 ...