Deploy-ZLMediaKit-And-WVP-GB28181-Pro-Offline
一、相关链接
二、环境介绍
编译机器:
- centos 8.6
- gcc version 8.5.0 (GCC)
- cmake version 3.20.2
| 名称 | 版本 | 备注 |
|---|---|---|
| CentOS | 8.5.2111 | |
| ZLMediaKit | 7.0 | |
| WVP-Pro | 2.7.2 | |
| gcc | 8.5.0 | |
| g++ | 8.5.0 | |
| cmake | 3.20.2 | |
| nasm | 2.14.02 | |
| yasm | 1.3.0 | |
| x264 | 0.165.x | |
| libmp4v2 | ||
| faac | 1.29.9.2 | |
| perl | v5.32.1 | |
| openssl | 1.1.1w | |
| libsrtp | 2.5.0 | |
| FFmpeg | 7.1.1 |
三、准备工作
本文档所有操作在一台与内网服务器同版本的虚拟机上执行,在内网机器部署时,只需要执行标题包含【离线】字样的内容
3.1 系统安装
系统安装与CentOS7之前有较大区别,可以参考这篇文章
重点是在安装信息摘要页面,按照以下顺序设置
- Root用户密码
- 网络和主机名 此处的MAC地址需要和虚拟机
设置-网络页面的MAC地址一致 - 安装目的地
- 安装源
http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/ - 软件选择 最小安装(yum ssh curl ping ip)
- 时间和日期 将时区改为 Asia/Shanghai

3.2 设置静态IP
如果要设置固定IP,可以修改网络配置文件,手动设置IP、MAC地址、网关、子网掩码、DNS等信息
# 查看网络配置
cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
# 修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
BOOTPROTO=static
IPADDR=192.168.137.101
# MACADDR=08:00:27:D7:88:87
HWADDR=08:00:27:D7:88:87
GATEWAY=192.168.137.1
NETMASK=255.255.255.0
DNS1=114.114.114.114
# 重启网络服务
systemctl restart NetworkManager
# 测试与宿主机 公网的网络互通
ping -c4 192.168.137.1
ping -c4 jd.com
3.3 修改yum源
Errors during downloading metadata for repository 'appstream':
- Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
错误:为仓库 'appstream' 下载元数据失败 : Cannot prepare internal mirrorlist: Curl error (6): Couldn't resolve host name for http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock [Could not resolve host: mirrorlist.centos.org]
由于 CentOS 团队已于 2021 年 12 月 31 日对 CentOS Linux 8 停止更新和维护,并从官方镜像中移除 CentOS 8 的所有包,因此导致在使用 yum 源安装或更新会报上述错误,解决方案可参考这篇文章,下面直接用阿里云软件源替换
- 备份软件源
# 进入仓库源文件目录下
cd /etc/yum.repos.d/
# 备份
mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
- 使用阿里云软件源
# 如果没有wget,可以用curl下载
# wget http://mirrors.aliyun.com/repo/Centos-8.repo -O /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
curl http://mirrors.aliyun.com/repo/Centos-8.repo -o /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
- 安装epel源、rpmfusion源
# 下载阿里云epel源、rpmfusion源
mkdir -p /root/lib/{epel,rpmfusion}
curl https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm -o ./local-repo/yum-repo/epel-release-latest-8.noarch.rpm
curl https://mirrors.aliyun.com/rpmfusion/free/el/rpmfusion-free-release-8.noarch.rpm -o ./local-repo/yum-repo/rpmfusion-free-release-8.noarch.rpm
curl https://mirrors.aliyun.com/rpmfusion/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm -o ./local-repo/yum-repo/rpmfusion-nonfree-release-8.noarch.rpm
# 安装
rpm -ivh ./local-repo/yum-repo/*.rpm
# 查看
ll /etc/yum.repos.d/epel*
ll /etc/yum.repos.d/rpmfusion*
# 刷新源
dnf repolist epel -v
dnf repolist rpmfusion -v
- 更新软件源
# 清空原有缓存并重新生成
yum clean all && yum makecache
# 更新软件包(可选)
yum update -y
3.4 创建操作用户
如果没有专门的操作用户,可以按下面的操作创建新的用户,后续操作均使用此新用户来执行
# 1. 创建用户
sudo useradd -m diginn
# 2. 设置密码
sudo passwd diginn
# 3. 赋予root权限
sudo visudo
# 添加如下内容
diginn ALL=(ALL) ALL
# 4. 测试权限
su - diginn
sudo whoami
# 显示 root 即表示diginn用户有 sudo 权限
3.5 安装基础依赖
由于离线安装时无法在线安装依赖包,故需要提前准备好相关的依赖包,如何查询并安装依赖包可以参考这篇文章
3.5.1 【在线】在线下载和安装
- 安装依赖
# 1. 下载 yum-utils https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/Packages/
mkdir -p ./local-repo/base-deps
curl https://mirrors.aliyun.com/centos/8.5.2111/BaseOS/x86_64/os/Packages/yum-utils-4.0.21-3.el8.noarch.rpm -o ./local-repo/base-deps/yum-utils-4.0.21-3.el8.noarch.rpm
# 2. 安装 yum-utils
rpm -ivh ./local-repo/base-deps/*.rpm
# 3. 下载RPM包
# yumdownloader --arch=x86_64 --resolve --destdir=/root/lib/tar tar
mkdir ./local-repo/base-repo/
dnf download --archlist=x86_64,noarch --resolve --destdir=./local-repo/base-deps/ \
tar unzip bzip2 vim wget net-tools yum-utils
# 4. 安装RPM包
dnf install tar bzip2 unzip wget net-tools yum-utils
--resolve下载依赖包--arch指定平台架构x86_64aarch64--releasever指定系统版本CentOS7的7或CentOS8的8--destdir指定保存路径
- 查看提供某个命令/value的rpm包
yum provides unzip
- 查看 rpm 包所需的全部依赖
yum deplist unzip-6.0-45.el8_4
3.5.2 【离线】离线安装
# 1. 安装解压工具
rpm -ivh tar-1.30-5.el8.x86_64.rpm
# 2. 解压离线安装包
tar -zxvf local-repo.tar.gz # RPM依赖包
tar -zxvf resource.tar.gz # 源码安装包
tar -zxvf ZLMediaKit.tar.gz # ZLMediaKit源码包
# 3. 安装基础依赖
dnf localinstall --disablerepo=* --skip-broken -y ./local-repo/base-deps/*.rpm
# 如果安装了本地仓库,可以直接安装
dnf --disablerepo=* --enablerepo=local install tar bzip2 unzip wget net-tools yum-utils
四、安装编译依赖
按照快速开始和zlm启用webrtc编译指南来准备编译环境