说在前面:写这个教程是因为自己尝试了不少方式来安装 webrtc,windows,linux,wsl 都进行了尝试。(折磨的不行= =)终于在这个假期将 webrtc 成功安装在了自己的 PC 上,所以特此记录,希望对后续希望学习 webrtc 的人能够有所帮助。毕竟,对于新手而言最难的第一步就是安装和配置环境。

What you need

在进行以下安装的操作之前先确保你有这几个东西:

  1. 一台 PC
  2. 较为快速的网络
  3. 科学上网的途径

如果没有上述条件,不建议进行以下的步骤

Prepare WSL

既然需要将 webrtc 安装在 wsl 上,那么第一步就是准备好 wsl。这一部分其实本人已经写了完整的教程了,这里将过程简单记录如下。(此外需要说明的是,安装 wsl 也可以直接通过 Microsoft Store 来安装,但是本人不喜欢将大文件安装在 C 盘,所以以下 wsl 的安装方是可以在任意磁盘下进行的。)

Download wsl

  • 20.04版本:https://aka.ms/wslubuntu2004
  • 18.04版本:https://aka.ms/wsl-ubuntu-1804

其他版本自行前往官网查找。

Change file to .zip

下载后得到AppxBundle文件,将后缀名改为zip,然后解压。

解压后得到如下内容:

img

选择x64或ARM64的安装包均可均可,将后缀名改为zip,然后解压。

Install

  1. 此时需要先将解压后的文件放到一个文件夹(任意你开心的文件夹就行),命名为对应的ubuntu+版本,
  2. 然后将这个文件夹放到需要安装的目录下
  3. 点击ubuntu.exe进行安装
  4. 输入用户名
  5. 输入密码
  6. 确认密码
  7. 安装成功

More config

基本上,本人使用的是 powershell 来进行 windows 的操作,所以推荐将 wsl 的快捷打开加入到 powershell。

按照下图操作

  1. 打开 powershell
  2. 首先点击 1 位置,然后选择 settings
  3. 之后点击 2 位置,新增 profile
  4. 最后点击 3 位置,创建空的 profile

img

按照上述操作之后会看到以下界面,可以修改 Name 项将其命名为 ubuntu-xxx,然后将 command line 位置的路径改为安装好的 wsl 的 ubuntu.exe 的路径。

img

之后就可以在 第一张图的 1 位置快速选择并打开自己的 wsl 了。

Install webrtc

本人使用的是 ubuntu2204,所以推荐你使用2204版本。当然版本不是一个大问题,不要安装太老的版本就行。

准备好了 wsl 之后,就可以开始着手安装 webrtc 了(期待的搓手手~)。

⚠⚠⚠以下操作均在 /home/your_name/ 路径下进行操作,在编辑 proxy 和 环境变量的时候需要将对应的 ipv4_address, proxy_port, your_name 设置为你自己的而不是直接 copy and paste,否则是一定会出错的。

Open wsl

第一步打开你辛辛苦苦安装好的 wsl,然后在 bash 下进行操作。

Proxy

为了能够拉取所需要的文件,首先你需要做的是配置好代理 (设置之前需要确保打开了 allow_lan)。配置方式如下:

export http_proxy=http://ipv4_address:proxy_port
export https_proxy=http://ipv4_address:proxy_port
export all_proxy=socks5://ipv4_address:proxy_port

Install depot_tools

因为 webrtc 是通过 depot_tools 进行管理的,所以首先需要安装 depot_tools 。

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

之后需要将 depot_tools 的路径设置为全局变量:

vim ~/.bashrc
# .bashrc 添加如下一行
export PATH="$PATH:/home/your_username/depot_tools"
# 添加完毕后保存并退出,执行以下语句
source ~/.bashrc

禁用 cpid:

export DEPOT_TOOLS_UPDATE=0

为 depot_tools 下载设置代理:

vim .boto
# 在 .boto 文件中输入以下内容
[Boto]
proxy = ipv4_address
proxy_port = proxy_port
# 添加完内容后,保存 .boto 文件并将其设置为环境变量
export NO_AUTH_BOTO_CONFIG=/home/your_username/.boto

Get webrtc

按照以下操作:

# 创建 webrtc 文件夹,并进入
mkdir webrtc
cd webrtc
# 获取 webrtc 代码
fetch --nohooks webrtc
# 由于文件比较多,所以可能会中断,如果中断了就使用下面的语句重新进行
gclient sync

在进行这一步操作的时候一定要有耐心,当然如果你的网速很快,那你的耐心忽略不计 = = 。

Install dependencies

使用以下语句安装依赖

cd /home/your_username/webrtc/src
./build/install-build-deps.sh

Compile

首先使用 depot_tools 中的 gn 语句来生成 ninja 工程文件:

gn gen out/Default

然后进行编译:

ninja -C out/Default

编译成功之后可以在 src/out/Default/obj 文件夹里面看到 libwebrtc.a 文件,就代表成功了。

Update

如果需要更新代码采取以下的步骤(当然本人没有尝试过,不想冒这个风险 = = ):

git checkout master
git pull origin master
gclient sync

Reference

以下是一些参考的链接,同时也包含了踩坑的一些解决方式,如果踩坑了不妨看看下面的链接,看看有没有类似的解决方式:

Ubuntu 20.04编译WebRTC_ubuntu 编译webrtc-CSDN博客

ubuntu - fetch v8 : "-bash: fetch: command not found" - Super User