当前位置: 首页 > news >正文

源码包安装 以及升级内核 上课内容

源程序(源码包)-->编译-->二进制格式

有些特性是编译选定的,如果编译未选定此特性,将无法使用;

rpm包的版本会落后于源码包,甚至落后很多;bind-9.8.7, bind-9.7.2

定制:手动编译安装


编译环境,开发环境

开发库,开发工具


Linux: C,

GNU: C


C,C++:

gcc: GNU C Complier, C

g++: 


make: 项目管理工具,

makefile: 定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序


automake, --> makefile.in --> makefile

autoconf, --> configure


100个可选择特性,


make install



编译安装的三步骤:

前提:准备开发环境(编译环境)

安装"Development Tools"和"Development Libraries" 


# tar 

# cd

# ./configure  

--help 

--prefix=/path/to/somewhere     #指定安装目录

--sysconfdir=/PATH/TO/CONFFILE_PATH

        --conf-path=/PATH/TO/CONFFILE_PATH     #指定配置文件目录

功能:1、让用户选定编译特性;2、检查编译环境;

# make

# make install


# tar xf tengine-1.4.2.tar.gz

# cd tegnine-1.4.2

# ./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf

# make

# make install

# /usr/local/tengine/sbin/nginx


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 通知系统重新搜寻库文件

-v: 显示重新搜寻库的过程

3、头文件:输出给系统

默认:/usr/include

增添头文件搜寻路径,使用链接进行:

/usr/local/tengine/include/   /usr/include/

两种方式:

ln -s /usr/local/tengine/include/* /usr/include/ 或

ln -s /usr/local/tengine/include  /usr/include/tengine

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

                系统默认在此目录下查找:/usr/share/man   

                /etc/man.config 此配置文件中定义了man命令查找帮助文档的路径

                RHEL7中是/etc/man_db.conf

1、man -M /PATH/TO/MAN_DIR COMMAND

2、在/etc/man.config中添加一条MANPATH




wKioL1XpKdDA744nABVXuF5QOFA925.bmp



本文转自 chomperwu 51CTO博客,原文链接:http://blog.51cto.com/chomper/1691301,如需转载请自行联系原作者

相关文章:

  • 实现 el-table 拖拽行排序,并获取当前拖拽行的数据传入服务器
  • js的面向对象编程
  • GitLab在centos7上安装和使用
  • 外行人都能看得懂的机器学习,错过了血亏!
  • 合并两个DataSet的一种方法
  • springboot集成swagger
  • kentico中的page template的使用
  • 解决奇葩的win7文件不能拖动问题
  • layer
  • RSA加密算法的简单案例
  • 第二次作业
  • Oracle数据库入门——初级系列教程
  • CentOS 网络基础:(4)设置单网卡多IP
  • PostgreSQL 9.6 for Centos7.4 最佳实践安装
  • charles抓包工具
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 2017前端实习生面试总结
  • Asm.js的简单介绍
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Java 网络编程(2):UDP 的使用
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Linux后台研发超实用命令总结
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Redis 懒删除(lazy free)简史
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 构建工具 - 收藏集 - 掘金
  • 目录与文件属性:编写ls
  • 如何解决微信端直接跳WAP端
  • 试着探索高并发下的系统架构面貌
  • 正则表达式小结
  • 交换综合实验一
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • # Maven错误Error executing Maven
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #include
  • (floyd+补集) poj 3275
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (转载)从 Java 代码到 Java 堆
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .net core 6 redis操作类
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 程序发生了一个不可捕获的异常
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .NET关于 跳过SSL中遇到的问题
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .php文件都打不开,打不开php文件怎么办
  • .ui文件相关