Linux部署webrtc-streamer不完全教程

之所以是不完全教程,是因为Linux系统版本不尽相同,方法也不一样,但是大方向是对的。

一、部署webrtc-streamer

安装gcc-8.2.0(centos8不需要安装)

Linux部署webrtc-streamer不完全教程_第1张图片

离线

2022-11-25 00:23:18 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1]

2022-11-25 00:24:17 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [1]

2022-11-25 00:24:59 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [1]

2022-11-25 00:26:46 URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291] -> "./isl-0.18.tar.bz2" [1]

先建个目录build 和文件安装目录

mkdir build

mkdir /usr/local/gcc-8.2.0

然后进去目录:cd build

编译指令输入:

../configure --prefix=/usr/local/gcc-8.2.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib

如果报错:

configure: error: no acceptable C compiler found in $PATH

查看得知未安装合适的编译器

sudo yum install gcc-c++

(使用sudo yum install gcc-c++时会自动安装/升级gcc及其他依赖的包。)

重新执行

../configure --prefix=/usr/local/gcc-8.2.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib

顺便说一下,make的-j参数是个坑,虽然可以并行编译,但如果Makefile或依赖关系有问题,编译会出错,4是CPU核心的的倍数,单核-j2 ,2核心用-j4,以此类推,可以加速编译速度,也可以不带,只使用一个编译器,编译过程有点漫长。

然后是漫长的编译等待时间。。。。。。电脑配置低可能需要2个小时。

yum -y remove gcc g++

ln -s /usr/local/gcc-8.2.0  /usr/bin/gcc

最后一行输出 gcc version 8.2.0 (GCC)

Linux部署webrtc-streamer不完全教程_第2张图片

还可以输入:strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI' 查看最新的版本库文件

Linux部署webrtc-streamer不完全教程_第3张图片

三、glibc升级到2.29

命令:../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

这里要说一下 上面的 --prefix=/usr 一定不能改,只能是 --prefix=/usr,否则安装不成功,后面坑一堆

大概率报错:

提示make版本太老:需要更新到make4.2,跳转到《四、make4.2安装》

提示bison版本太老:需要更新到bison3.0.4,跳转到《五、bison3.0.4安装》

提示python版本太老:需要更新到python3.8,跳转到《六、python3.8安装》

再次执行

提示compiler编译器版本太低:需要升级gcc-11.2.0,跳转到《七、Linux升级gcc到最新版本gcc-11.2.0》

make -j4

make install

ll /lib64/libc*

可以看到 /lib64/libc.so.6 -> libc-2.29.so就表示成功了,

然后可以继续查看 glibc支持的版本

strings /lib64/libc.so.6 | grep GLIBC

问题一:安装时报错ModuleNotFoundError: No module named '_ctypes'的解决办法

执行如下命令:yum install libffi-devel

 

问题二:安装时报错zipimport.ZipImportError: can't decompress data; zlib not available

     从错误信息分析,就是缺少了zlib的解压缩类库,安装即可

     执行如下命令:yum -y install zlib*

四、make4.2安装

执行完,这里需要编译,会生成build.sh文件,然后执行这个文件 sh build.sh

make -v

Linux部署webrtc-streamer不完全教程_第4张图片

五、bison3.0.4安装

bison --version
bison
-V

Linux部署webrtc-streamer不完全教程_第5张图片

貌似就没有安装bison 。 

yum install bison

查看版本:

Linux部署webrtc-streamer不完全教程_第6张图片

Centos8可能会有如下错误。只需要根据提示找到目录下的glob.c文件增加

# define __alloca alloca

Linux部署webrtc-streamer不完全教程_第7张图片

六、python3.8安装

建立安装的目录

mkdir /usr/local/python3

进入解压文件

cd Python-3.8.0a1

建立编译文件夹

mkdir build

cd build

../configure --prefix=/usr/local/python3

接着编译一下:

make -j4

最后就是安装了:

make install

这里会到处yum不可用,先查看系统python的版本

python -V

我现在是python2.7的版本

然后修改

vim /usr/bin/yum

!/usr/bin/python 改为 #!/usr/bin/python2.7

然后进入

cd /usr/bin

删除原来的python软连接

rm -rf python

建立python3.8的链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python

以下部分配置后异常,系统命令全都不能用。先放一放不去执行

然后修改配置

vim ~/.bash_profile

加入

export PATH=$PATH:$HOME/bin:

export PATH=$PATH:$HOME/bin:/usr/local/python3/bin

执行

source ~/.bash_profile

python -V

七、Linux升级gcc到最新版本gcc-11.2.0(暂时不用此版本)

wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

# 腾讯软件源 https://mirrors.cloud.tencent.com/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz

tar -zxvf gcc-11.2.0.tar.gz

yum -y install bzip2 #已安装可以跳过这一步

# 中标麒麟系统需要以下依赖

# yum -y install gmp mpfr mpc isl bzip2

cd gcc-11.2.0

./contrib/download_prerequisites

mkdir build

cd build/

../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

#–enable-languages表示你要让你的gcc支持那些语言,

#–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。

#–disable-checking生成的编译器在编译过程中不做额外检查,

#也可以使用*–enable-checking=xxx*来增加一些检查

make

#这一步需要时间非常久 可以使用 make -j4 让make最多运行四个编译命令同时运行,加快编译速度(建议不要超过CPU核心数量的2倍)

make install

gcc -v

Using built-in specs.

COLLECT_GCC=/usr/local/bin/gcc

COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper

Target: x86_64-pc-linux-gnu

Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

Thread model: posix

Supported LTO compression algorithms: zlib

gcc version 11.2.0 (GCC)

验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;

或者可以查看gcc的安装位置:which gcc;

然后在查看版本 /usr/local/bin/gcc -v

确定以及配置成功后可以将原先的版本删除

yum -y remove gcc g++

ln -s /usr/local/bin/gcc /usr/bin/gcc

ln -s /usr/local/bin/g++ /usr/bin/g++

#查看当前的动态库

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

rm -f /usr/lib64/libstdc++.so.6

ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

#查看更新后的动态库

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

# 安装后的动态库会位于/usr/local/lib64目录下,

#其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX

  • 更新动态库
  • 配置新版本全局可用
  • 删除旧版本
  • 验证gcc版本
  • 安装
  • 编译
  • 配置
  • 下载依赖及配置文件
  • 下载最新的源码包并解压缩
  • 然后完成,检查python的版本
  • 建立软链接
  • 下载的3.8.0:wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a1.tgz
  • 解压:tar -xvmakf Python-3.8.0a1.tgz
  • 编译安装
  • 使用 yum 安装bison 
  • 首先查看bison 版本  
  • 然后就安装完成了,查看版本
  • 安装:make install
  • 下载wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz
  • 解压:tar -xvf make-4.2.tar.gz
  • 进入解压后目录:cd make-4.2
  • 编译安装
    1. 建立编译目录:mkdir build
    2. 进入:cd build
    3. 执行:../configure --prefix=/usr
  • 安装完成后,查看是否成功
  • 编译安装
  • 下载glibc2.29:wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
  • 解压:tar -zxvf glibc-2.29.tar.gz
  • 准备一个编译文件夹:mkdir build  并进入:cd build
  • 配置configure
  • 大功告成,继续升级glibc
  • 输入gcc -v 查看版本
  • 配置新版本全局可用
  • 编译好makefile之后,输入:sudo make install
  • 设置为默认编译器:export PATH=/usr/local/gcc-8.2.0/bin:$PATH
  • 如果不想每次重启都配置一遍,可以加入这一行到 c里面,让配置生效:source ~/.bashrc
  • 配置gcc最新库文件
    1. 使用命令 find / -name "libstdc++.so.*"
    2. 找到 libstdc++.so.6.0.25 复制到/usr/lib64里面
    3. 删除原来的库文件软连接: rm -rf libstdc++.so.6
    4. 配置新的链接:ln -s libstdc++.so.6.0.22 libstdc++.so.6
    1. 删除旧版本
  • 然后输入:make -j4
  • 编译安装:
  • 解压: 输入tar -xvf gcc-8.2.0.tar.gz
  • 进入gcc-8.2.0解压目录:cd gcc-8.2.0
  • 下载依赖包:输入:./contrib/download_prerequisites
  • 下载gcc:wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gz
  • 报错提示:glibc需要升级到2.29,安装glibc 2.29《三、glibc升级到2.29》 需要高版本的gcc支持,我安装的是gcc8.2 
  • 检查gcc版本:未安装到第二步《二、安装gcc-8.2.0(centos8不需要安装)》
  • webrtc-streamer包:webrtc-streamer-v0.7.0-Linux-x86_64-Release.tar.gz
  • 拷贝到root下,解压:tar -xvf webrtc-streamer-v0.7.0-Linux-x86_64-Release.tar.gz
  • 改名:mv webrtc-streamer-v0.7.0-Linux-x86_64-Release webrtc-streamer
  • 进入webrtc-streamer:cd webrtc-streamer
  • 执行 ./webrtc-streamer
  • 大概率报错:

你可能感兴趣的:(linux,服务器,运维)