centos9编译安装opensips 二【进阶篇-定制目录+模块】推荐

环境:centos9 last

opensips -V
version: opensips 3.6.0-dev (x86_64/linux)
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, CC_O0, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll, sigio_rt, select.
git revision: b113db6de
main.c compiled on 13:39:41 Jan 21 2025 with cc 11

opensips模块dialplan,regex,json

dnf update -y
dnf groupinstall "Development Tools" -y
# dnf install epel-release -y
dnf install libmicrohttpd-devel -y # http模块依赖
dnf install expat-devel -y # opensips xml模块依赖
dnf install net-snmp-devel -y # snmpstats模块依赖 用途:统计信息,适用于监控和管理
dnf install openldap-devel -y
dnf install mysql-devel -y  # 数据库选择mysql时安装
dnf install librdkafka librdkafka-devel -y # event_kafka 
dnf install -y lynx
dnf install -y git wget curl 
dnf install -y ncurses-devel 
dnf install -y libxml2-devel 
dnf install -y libpcap-devel libuuid-devel 
dnf install -y libcurl-devel 
#dnf install -y sqlite-devel #sqlite数据库使用
dnf install -y pcre-devel 
dnf install -y bzip2-devel 
dnf install -y flex bison 
dnf install -y perl 
dnf install -y openssl-devel 
dnf install -y libevent-devel 
dnf install -y automake 
dnf install -y libtool 
dnf install -y postgresql-devel 
dnf install -y zlib-devel 
dnf install -y cmake
dnf install pandoc -y
dnf install json-c-devel -y #json-c 与下边的编译安装二选一
yum install gperftools-devel -y  # gperftools/profiler.h报错时安装

# ls /usr/include/ncurses.h
# ls /usr/include/curses.h
# ls /usr/lib64/libncurses.so
# export CFLAGS="-I/usr/include/ncurses"
# export LDFLAGS="-L/usr/lib64 -lncurses"

#mmgeoip模块
git clone https://github.com/maxmind/libmaxminddb.git
cd libmaxminddb
git submodule update --init --recursive
mkdir build
cd build 
cmake ..
make
make install 

#json模块  可选
git clone https://github.com/json-c/json-c.git
cd json-c   
mkdir build
cd build
cmake ..
make
make install
ls /usr/local/include/json-c/
export CFLAGS="-I/usr/local/include/json-c"
export LDFLAGS="-L/usr/local/lib"

# ln -s /usr/local/include/json-c /usr/include/json-c  #不推荐
# ln -s /usr/local/lib/libjson-c.so /usr/lib64/libjson-c.so	#不推荐


# 克隆 AWS SDK for C++ 的源码  先安装opensips  如果不报错  这一步可以不操作
git clone --recurse-submodules https://github.com/aws/aws-sdk-cpp.git

cd aws-sdk-cpp

# 创建构建目录并进入
mkdir build
cd build

# 配置编译选项
### 从这里开始不推荐
# cmake3 .. -DCMAKE_BUILD_TYPE=Release \
#          -DCMAKE_INSTALL_PREFIX=/usr/local/aws-sdk-cpp \
#         -DBUILD_SHARED_LIBS=ON \
#          -DENABLE_UNITY_BUILD=ON \
#          -DENABLE_TESTING=OFF \
#          -DCUSTOM_MEMORY_MANAGEMENT=OFF
# ls /usr/local/aws-sdk-cpp/include/aws/core/Aws.h
# ls /usr/local/aws-sdk-cpp/lib

# export C_INCLUDE_PATH=/usr/local/aws-sdk-cpp/include:$C_INCLUDE_PATH
# export CPLUS_INCLUDE_PATH=/usr/local/aws-sdk-cpp/include:$CPLUS_INCLUDE_PATH
# export LIBRARY_PATH=/usr/local/aws-sdk-cpp/lib:$LIBRARY_PATH
# export LD_LIBRARY_PATH=/usr/local/aws-sdk-cpp/lib:$LD_LIBRARY_PATH
#######到这里结束了

cmake ..   # 推荐
# 开始编译
make -j$(nproc)

# 安装编译好的库
make install


cd ~
git clone https://github.com/OpenSIPS/opensips.git
cd opensips
make menuconfig  # 会弹出来选项窗口 选择第二个 默认安装
# 第一个 编译配置
# 1.阅读:[https://blog.csdn.net/weixin_44213550/article/details/145294032](https://blog.csdn.net/weixin_44213550/article/details/145294032)
# 2. 阅读:[https://blog.csdn.net/weixin_44213550/article/details/145293955]
(https://blog.csdn.net/weixin_44213550/article/details/145293955)
……
#第二个  安装
#第三个  清空脚本
#第四个  模式

#第五个  退出

在这里插入图片描述
看到上图 标识安装成功
在这里插入图片描述
操作系统环境

操作系统下载地址 https://mirrors.aliyun.com/centos-stream/9-stream/BaseOS/x86_64/iso/?spm=a2c6h.25603864.0.0.8d45460dBKuGTE在这里插入代码片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/958484.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 实现动态管理定时任务 Job的动态操作(添加、修改、启停、执行、删除)以及界面展示和具体Job的创建与执行示例

SpringBoot 实现动态管理定时任务 Job的动态操作(添加、修改、启停、执行、删除)以及界面展示和具体Job的创建与执行示例 关键接口类: CronTaskRegistrar SchedulingRunnable . 添加定时任务注册类,用来增加、删除定时任务 impo…

LLMs的星辰大海:大语言模型的前世今生

文章目录 一. LLM 的演进:从规则到智能的跃迁 💫1.1 语言模型的蹒跚起步 👶1.2 RNN 与 LSTM:序列建模的尝试 🧐1.3 Transformer 的横空出世:自注意力机制的革命 💥1.4 LLM :从预测到…

路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)

近期因公司新办公区建设,原有的爱快路由器的SDWAN功能实现分支之间互联的服务还需要继续使用。在原有的小型网络中,使用的爱快路由器当作网关设备,所以使用较为简单,如下图所示。 现变更网络拓扑为三层网络架构,但原有的SDWAN分支…

flutter_学习记录_00_环境搭建

1.参考文档 Mac端Flutter的环境配置看这一篇就够了 flutter的中文官方文档 2. 本人环境搭建的背景 本人的电脑的是Mac的,iOS开发,所以iOS开发环境本身是可用的;外加Mac电脑本身就会配置Java的环境。所以,后面剩下的就是&#x…

15_业务系统基类

创建脚本 SystemRoot.cs 因为 业务系统基类的子类 会涉及资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 所以在业务系统基类 提取引用资源加载服务层ResSvc.cs 和 音乐播放服务层AudioSvc.cs 并调用单例初始化 using UnityEngine; // 功能 : 业务系统基类 public c…

docker 安装 redis 详解

在平常的开发工作中,我们经常会用到 redis,那么 docker 下应该如何安装 redis 呢?简单来说:第一步:拉取redis镜像;第二步:设置 redis.conf 配置文件;第三步:编写 docker-…

困境如雾路难寻,心若清明步自轻---2024年创作回顾

文章目录 前言博客创作回顾第一次被催更第一次获得证书周榜几篇博客互动最多的最满意的引发思考的 写博契机 碎碎念时也运也部分经验 尾 前言 今年三月份,我已写下一篇《近一年多个人总结》,当时还没开始写博客。四月份写博后,就顺手将那篇总…

综合与时序分析的设计约束(1)——静态时序分析简介

目录 1.绪论2.静态时序分析与动态时序分析3.时序约束在静态时序分析中的作用3.1.约束作为声明3.2. 约束作为断言3.3.约束作为指令3.4.约束作为异常3.5.约束的角色变化 4.STA需要正确约束5.时序路径起点和终点6.建立与保持6.1 建立时间6.2 保持时间6.3 裕度 7.SDC主要类型7.1 时…

【算法日记】从零开始认识动态规划(一)

挫折会来也会过去, 热泪会流下也会收起, 没有什么可以让我气馁的, 因为,我有着长长的一生。 --- 席慕蓉 《写给幸福》--- 从零开始认识动态规划 1 动态规划问题1.1 什么是动态规划算法1.2 动态规划算法如何Debug1.3 动态规划…

八股学习 微服务篇

微服务篇 常见面试内容Spring Cloud 常见组件注册中心Ribbon负载均衡策略服务雪崩 常见面试内容 Spring Cloud 常见组件 Spring Cloud有5个常见组件: Eureka/Nacos:注册中心;Ribbon:负载均衡;Feign:远程调用;Hystrix/Sentinel:服…

【矢量数据】2024年最新中国省市县乡四级矢量地图数据 [推广有奖]

中国四级矢量地图数据是当前地理信息系统(GIS)中广泛应用的重要资源,涉及国家级、省级、市级、县级及乡级行政区的空间信息。这些数据可应用于地图绘制、城市规划、政府决策及各类地理分析等领域 一、中国四级矢量地图数据的介绍 本分享数据…

力扣707题(2)——设计链表

#题目 #3,5和6的代码 今天看剩下几个题的代码,1,2,4的代码已经在上篇博客写过了想看的小伙伴移步到: 力扣707题——设计链表-CSDN博客 //第3题头插法 void addAtHead(int val){ //记录头结点ListNode nhead; //新节点的创建,并让它指向原本头结点的后…

JavaWeb 学习笔记 XML 和 Json 篇 | 020

今日推荐语 愿你遇见好天气,愿你的征途铺满了星星——圣埃克苏佩里 日期 学习内容 打卡编号2025年01月23日JavaWeb笔记 XML 和 Json 篇020 前言 哈喽,我是菜鸟阿康。 以下是我的学习笔记,既做打卡也做分享,希望对你也有所帮助…

c#实现当捕获异常时自动重启程序

首先,需要说明这并不是一个推荐的做法,只有在你确实有这样的需求时才考虑这么做。 以下是AI的回答,为什么不推荐这么做,供参考。 在C#中,如果你在catch语句中尝试重启程序自身,可能会遇到以下几个问题&…

Spring WebSocket 与 STOMP 协议结合实现私聊私信功能

目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接: 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…

uniapp+Vue3(<script setup lang=“ts“>)模拟12306城市左右切换动画效果

效果图&#xff1a; 代码&#xff1a; <template><view class"container"><view class"left" :class"{ sliding: isSliding }" animationend"resetSliding">{{ placeA }}</view><view class"center…

缓存之美:万文详解 Caffeine 实现原理(下)

上篇文章&#xff1a;缓存之美&#xff1a;万文详解 Caffeine 实现原理&#xff08;上&#xff09; getIfPresent 现在我们对 put 方法有了基本了解&#xff0c;现在我们继续深入 getIfPresent 方法&#xff1a; public class TestReadSourceCode {Testpublic void doRead() …

Spring Security(maven项目) 3.0.2.6版本—总

通过实践而发现真理&#xff0c;又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识&#xff0c;又从理性认识而能动地指导革命实践&#xff0c;改造主观世界和客观世界。实践、认识、再实践、再认识&#xff0c;这种形式&#xff0c;循环往复以至无穷&#xf…

C++函数——fill

在C中&#xff0c;std::fill 是标准库提供的一个算法适用于几乎所有类型的容器&#xff0c;只要这些容器支持迭代器操作。具体来说&#xff0c;std::fill 的适用性取决于容器是否提供了满足其要求的迭代器类型&#xff0c;用于将指定范围内的所有元素设置为某个特定值。它是一个…

jmeter中对接口进行循环请求后获取相应数据

1、工作中遇到一个场景就是对某个单一接口进行循环请求&#xff0c;并需要获取每次请求后返回的相应数据&#xff1b; 2、首先就在jmeter对接口相关组件进行配置&#xff0c;需要组件有&#xff1a;循环控制器、CSV数据文件设置、计数器、访问接口、HTTP信息头管理器、正则表达…