51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

ARM-linux源码编译搭建Janus环境

项目上客户使用的是ARM服务器,需要在编译Arm的Janus版本,记录下整个过程。


Janus在ARM环境下部署,编译时,通常会出现下面的错误。

./configure --prefix=/home/OV500/LB/ --disable-docs --libdir=/usr/lib64 --enable-libsrtp2 
--enable-websockets --enable-data-channels --enable-rest --disable-rabbitmq --disable-mqtt
checking for JANUS... no
configure: error: Package requirements ("glib-2.0 >= 2.34
                    gio-2.0 >= 2.34
                    libconfig
                    nice
                    jansson >= 2.5
                    libssl >= 1.0.1
                    libcrypto
                    zlib") were not met
configure: error: Package requirements ("glib-2.0 >= 2.34
                    gio-2.0 >= 2.34
                    libconfig
                    nice
                    jansson >= 2.5
                    libssl >= 1.0.1
                    libcrypto
                    zlib") were not met:

当然,主要还是缺少相关的基础环境配置。为了避免对系统产生影响,在docker中使用centos 9作为宿主环境进行编译。

主要思路是,使用一个centos9的容器,将Janus依赖的每一个包,都通过源码编译的方式进行安装。

呱牛笔记

1、容器
[root@localhost fs_work_share_dir]# docker pull quay.io/centos/centos:stream9
stream9: Pulling from centos/centos
docker run -d --name centos9_1 -v /home/freeswitch/fs_work_share_dir/:/mnt/work --privileged=true -it 8bff730c2e73 /usr/bin/bash
[root@8a60561dcdf7 sofia-sip-1.13.17]# cd ..
镜像修改为阿里云
安装基础软件:
 yum install -y git glib2-devel binutils gcc gcc-c++ libtool vim make wget alsa-lib-devel bison bzip2 
                                    curl-devel  gnutls-devel libjpeg-devel

                                    libcurl-devel libedit-devel 

                                    libtool 

                                    libxml2-devel  openssl-devel 

                                     pcre-devel pkgconfig 

                                   sqlite-devel libuuid-devel 

                                    which   zlib-devel libtiff-devel

2、janus安装 所有库的安装路径统一到/home/OV500/LB/ libnice yum install python3-pip 源码安装re2c
autoreconf -i -W all ./configure make && make install [root@8a60561dcdf7 re2c]# pip3 install --user meson 安装ninja git clone git://github.com/ninja-build/ninja.git && cd ninja ./configure.py --bootstrap [root@8a60561dcdf7 ninja-master]# cp ninja /usr/sbin/ [root@8a60561dcdf7 ninja-master]# pwd /mnt/work/source/janus/libnice/re2c/ninja-master [root@8a60561dcdf7 glib-2.60.6]# 编译glib-2.0 ninja -C _build install /home/OV500/LB/lib64/include/glib-2.0/ #jasson源码安装 make build cmake ../ -DCMAKE_INSTALL_PREFIX:PATH=/home/OV500/LB/ -DCMAKE_C_FLAGS="-fpic"
#libnice安装 meson setup _build -Dprefix=/home/OV500/LB/ ninja -C _build install #安装libmicrohttpd [root@8a60561dcdf7 libmicrohttpd-0.9.75]#
#安装libwebsocket git clone https://libwebsockets.org/repo/libwebsockets cd libwebsockets

If you want the stable version of libwebsockets, uncomment the next line

git checkout v4.3-stable

mkdir build cd build #安装 opus [root@8a60561dcdf7 opus-1.5.2]# pwd /mnt/work/source/janus/opus-1.5.2 [root@8a60561dcdf7 opus-1.5.2]# cd .. #安装 paho.mqtt,注意如果没有安装openssl,则不会生成3as的so文件,需要修改janus的依赖makefile [root@8a60561dcdf7 janus]# cd paho.mqtt.c-master [root@8a60561dcdf7 paho.mqtt.c-master]# #安装 libogg [root@8a60561dcdf7 libogg-1.3.5]# make install 安装完了之后,修改PKG_CONFIG_PATH export PKG_CONFIG_PATH=/home/OV500/LB/zlm/lib/:/home/OV500/LB/lib/pkgconfig/: /home/OV500/LB/lib64/pkgconfig/:/usr/lib64/pkgconfig/:/mnt/work/OV500/lib/pkgconfig/: /mnt/work/OV500/LB/lib/pkgconfig/:/mnt/work/OV500/LB/lib64/pkgconfig/:$PKG_CONFIG_PATH 执行ldconfig,然后安装janus。 ./configure --prefix=/home/OV500/LB/ --disable-docs --libdir=/usr/lib64 --enable-libsrtp2 --enable-websockets --enable-data-channels --enable-rest --disable-rabbitmq --disable-mqtt


安装janus成功。


去掉某个告警:GCC_DIAG_OFF(array-bounds)







赞(0)
未经允许不得转载:工具盒子 » ARM-linux源码编译搭建Janus环境