licode官方文档:From Source - Documentation (licode.readthedocs.io)
按照官方步骤执行,ubuntu使用20.04的镜像虚拟机。
sudo apt install git
git clone https://github.com/lynckia/licode.git
cd licode
sudo ./scripts/installUbuntuDeps.sh
这里可能会遇到许许多多的问题,需要仔细看看,这里介绍下脚本原理,方便排查问题。
该脚本主要就是下载依赖然后安装,下载目录为./licode/build/libdeps,安装目录为./licode/build/libdeps/build,其定义了很多函数来分别下载对应依赖:
//举例下载安装libav
install_mediadeps(){
install_opus
sudo apt-get -qq install yasm libvpx. libx264.
if [ -d $LIB_DIR ]; then
cd $LIB_DIR
if [ ! -f ./v11.9.tar.gz ]; then
curl -O -L https://github.com/libav/libav/archive/v11.9.tar.gz
tar -zxvf v11.9.tar.gz
cd libav-11.9
PKG_CONFIG_PATH=${PREFIX_DIR}/lib/pkgconfig ./configure --prefix=$PREFIX_DIR --enable-shared --enable-gpl --enable-libvpx --enable-libx264 --enable-libopus --disable-doc
make $FAST_MAKE -s V=0
make install
else
echo "libav already installed"
fi
cd $CURRENT_DIR
else
mkdir -p $LIB_DIR
install_mediadeps
fi
}
//开始执行脚本
check_sudo #检查
install_apt_deps
install_mongodb #安装mongodb
install_conan #安装conan,其他下同
check_proxy
install_openssl
install_libsrtp
install_opus
install_libnice
install_cpplint
if [ "$ENABLE_GPL" = "true" ]; then
install_mediadeps
else
install_mediadeps_nogpl
fi
if [ "$CLEANUP" = "true" ]; then
echo "Cleaning up..."
cleanup
fi
如果遇到下载错误,可以手动下载到libdeps目录后,修改脚本注释掉下载的命令。
大概率不会遇到安装错误,如果遇到估计是编译工具链的问题。
./scripts/installNuve.sh #安装nuve
./scripts/installErizo.sh #安装erizo
nuve主要是js和db操作相关,具体没有了解。随便引用一个博客介绍:(20条消息) Licode(二):Nuve源码分析_郑亚帅-CSDN博客
erizo就是licode的c++功能模块。
installErizo.sh主要调用两个脚本来生成编译出来的so
./generateProject.sh # 构建工程:cmake
./buildProject.sh # 编译工程:make
构建完成后,即可在./build目录中找到对应的生成,比如这里我关心的两个libwebrtc.a和liberizo.so分别在:
./licode/erizo/build/release/third_party/webrtc/src/libwebrtc.a
./licode/erizo/build/release/erizo/liberizo.so