CentOS支持的不是很理想
我们尝试使用下面的步骤在CentOS上编译流式系统,但是没有成功。
Step | Description |
Use Ninja to compile | Install prerequisitesum -y install git automake gcc+ gcc-c++ libtool Install Python3.7 4 How to install Python3.7 in CentOS Get git and compilegit clone https://github.com/ninja-build/ninja.gitcd ninja./configure.py --bootstrap 就可以了。然后将生成的ninja 文件,复制到/usr/bin 等系统目录中,以便于能够重启后执行到。 |
install GN | download fromhttps://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+/latestDownloaded file and add it to PATH environmentgn-linux-amd64.zip |
Dependency | run sudo ./build/linux/sysroot_scripts/install-sysroot.py –arch=amd641)make sure you are under /webrtc90-md/webrtc-checkout/src folder2)make sure you have give 777 for all its folderThis step will download something and take some time.If failed, please connect VPN and try again.BTW ,you could use sudo chmod |
Compile webrtc | go to webrtc90-md/webrtc-checkout/srcrun gn gen out/CentOS64 (CentOS64 is a folder name you could use your own)或者比较完整的参数gn gen –target=x64 –args=”is_clang=false use_custom_libcxx = false use_rtti=false rtc_include_tests=false enable_iterator_debugging=true symbol_level=0 treat_warnings_as_errors=false” –ide=vs2019 out/x64/debug |
Compile | ninja -C out/CentOS64 |
Add to PATH | add depot_tools folder to PATH environment PATH=”xxxx”:$PATHexport PATH |
Add Libc Dependencies | In some CentOS ,we need install some dependencies for gn command (Step1)2 执行GN缺失依赖glibccurl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gztar zxf glibc-2.18.tar.gzcd glibc-2.18/mkdir buildcd build/../configure –prefix=/usr(If this step display errors like missing gcc , please install gcc via sudo yum install gcc)make -j2 (this step will take lot of time)sudo make install (please sudo when you see some permission errors)Make sure Terminal display like : Your new glibc installation seems to be ok. |
Done. Made 1305 targets from 276 files in 556ms | |
遇到很多libg++ 或者头文件找不到的编译错误 |
在其余的网上帖子有些不能支持CentOS
具体分析
总体来看,CentOS 本身是支持 WebRTC 的,但在实际开发和部署中,可能会遇到一些挑战或限制。以下是一些可能的原因和解决方案:
- 兼容性和依赖问题
问题:
- 软件版本:某些 WebRTC 相关的软件或库可能依赖于特定版本的系统库或工具,而这些版本在 CentOS 的官方仓库中可能不可用。
- 库和工具:WebRTC 需要一些特定的库(如 libnice、libwebsockets、STUN/TURN 服务器等),这些库可能需要手动安装或编译。
解决方案:
- 使用 EPEL 或第三方仓库:启用 EPEL(Extra Packages for Enterprise Linux)仓库,或查找其他第三方仓库以获取所需的软件包。
- 手动编译和安装:从源代码编译所需的库和工具,确保它们与系统环境兼容。
- 网络和安全配置
问题:
- 防火墙和 SELinux:CentOS 默认启用防火墙和 SELinux(Security-Enhanced Linux),这些安全措施可能会阻止 WebRTC 的正常通信。
解决方案:
- 配置防火墙:确保 WebRTC 使用的端口(如 3478、8080 等)在防火墙中开放。可以使用
firewall-cmd
命令进行配置。 - 调整 SELinux 策略:根据需要调整 SELinux 策略,以允许 WebRTC 相关服务的正常运行。可以暂时设置 SELinux 为宽松模式进行测试,使用
setenforce 0
命令。
- 依赖于浏览器和客户端
问题:
- 浏览器支持:WebRTC 依赖于浏览器的实现,确保你使用的浏览器版本支持 WebRTC,并且在 CentOS 上配置得当。
解决方案:
- 更新浏览器:使用支持 WebRTC 的最新版本浏览器,如 Google Chrome、Firefox、Safari 等。确保浏览器设置和网络环境允许 WebRTC 的正常运行。
- 配置和优化
问题:
- 系统优化:某些 WebRTC 部署可能需要特定的系统优化(如网络配置、性能调整等),这些可能在 CentOS 环境中有所不同。
解决方案:
- 性能调优:根据 WebRTC 的需求调整系统参数,如网络带宽、内存配置等。确保系统能够处理实时通信的负载。
- 开发和测试环境
问题:
- 开发工具:某些开发工具或库可能在 CentOS 上不容易配置,特别是在开发阶段可能遇到问题。
解决方案:
- 使用容器化技术:使用 Docker 或其他容器化技术来创建开发和测试环境,可以简化依赖管理和环境配置。
- 跨平台开发:在其他平台(如 Ubuntu)开发和测试,然后在 CentOS 上部署和运行,确保兼容性。
总结
虽然 CentOS 是一个稳定和可靠的操作系统,但在 WebRTC 开发和部署中可能会遇到一些特定的挑战。通过适当的配置和调优,通常可以解决这些问题,使 CentOS 成为一个有效的 WebRTC 运行环境。确保系统软件、网络配置和安全策略与 WebRTC 的需求相匹配,能够帮助顺利实现和运行 WebRTC 应用。
RA/SD 衍生者AI训练营。发布者:chris,转载请注明出处:https://www.shxcj.com/archives/6617