To build rtpengine packet on Debian system, but not having all build dependencies on target machine.
So, we'll use Docker to generate deb files for target system and than - just remove image. This way system will held only minimum needed packets.
As a target, Debian 10 (buster) will be used, as I succeed to install rtpengine mr8.0 (with G.729 support) on it and can't get it working on Debian 9 (maybe use lower version?)
So. All is done on Debian 10 netinst.
- First step - install Docker
apt update
apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update
apt install -y docker-ce - Prepare Dockerfile
FROM debian:buster
MAINTAINER Igor Olhovskiy <igorolhovskiy@gmail.com>
ENV DEBIAN_FRONTEND noninteractive
ENV RTPENGINE_VERSION mr8.0
ENV BCG729_VERSION 1.0.4
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y git \
dpkg-dev \
cmake \
unzip \
wget \
debhelper-compat \
default-libmysqlclient-dev \
gperf \
iptables-dev \
libavcodec-dev \
libavfilter-dev \
libavformat-dev \
libavutil-dev \
libbencode-perl \
libcrypt-openssl-rsa-perl \
libcrypt-rijndael-perl \
libcurl4-openssl-dev \
libdigest-crc-perl \
libdigest-hmac-perl \
libevent-dev libglib2.0-dev \
libhiredis-dev libio-multiplex-perl \
libio-socket-inet6-perl libiptc-dev \
libjson-glib-dev libnet-interface-perl \
libpcap0.8-dev \
libpcre3-dev \
libsocket6-perl \
libspandsp-dev \
libssl-dev \
libswresample-dev \
libsystemd-dev \
libxmlrpc-core-c3-dev \
markdown \
curl \
wget \
zlib1g-dev && \
cd /usr/src && \
curl https://codeload.github.com/BelledonneCommunications/bcg729/tar.gz/$BCG729_VERSION > bcg729_$BCG729_VERSION.orig.tar.gz && \
tar zxf bcg729_$BCG729_VERSION.orig.tar.gz && \
cd bcg729-$BCG729_VERSION && \
git clone https://github.com/ossobv/bcg729-deb.git debian && \
dpkg-buildpackage -us -uc -sa && \
cd /usr/src && \
dpkg -i *.deb && \
cd /usr/src && \
git clone -b $RTPENGINE_VERSION https://github.com/sipwise/rtpengine.git && \
cd rtpengine && \
dpkg-buildpackage && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN mkdir -p /opt/deb && \
mv /usr/src/*.deb /opt/deb
VOLUME ["/opt/deb"] - Build and get deb files
docker build -t rtpengine:build .
docker create --name rtpengine-build rtpengine:build
docker cp rtpengine-build:/opt/deb . - Install rtpengine
cd deb
dpkg -i libbcg729-0*.deb
dpkg -i ngcp-rtpengine-daemon_*.deb
apt-get install -f
dpkg -i ngcp-rtpengine-recording-daemon_*.deb
apt-get install -f
dpkg -i ngcp-rtpengine-utils_*.deb
apt-get install -f
dpkg -i ngcp-rtpengine-iptables_*.deb
apt-get install -f
dpkg -i ngcp-rtpengine-kernel-dkms_*.deb
dpkg -i ngcp-rtpengine_*.deb
Idea of repeating apt-get install -f is to apt to add missing packets.
Next - configure rtpengine as usual
No comments:
Post a Comment