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环境