说在前面:写这个教程是因为自己尝试了不少方式来安装 webrtc,windows,linux,wsl 都进行了尝试。(折磨的不行= =)终于在这个假期将 webrtc 成功安装在了自己的 PC 上,所以特此记录,希望对后续希望学习 webrtc 的人能够有所帮助。毕竟,对于新手而言最难的第一步就是安装和配置环境。
What you need
在进行以下安装的操作之前先确保你有这几个东西:
- 一台 PC
- 较为快速的网络
- 科学上网的途径
如果没有上述条件,不建议进行以下的步骤。
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,然后解压。
解压后得到如下内容:
选择x64或ARM64的安装包均可均可,将后缀名改为zip,然后解压。
Install
- 此时需要先将解压后的文件放到一个文件夹(任意你开心的文件夹就行),命名为对应的ubuntu+版本,
- 然后将这个文件夹放到需要安装的目录下
- 点击ubuntu.exe进行安装
- 输入用户名
- 输入密码
- 确认密码
- 安装成功
More config
基本上,本人使用的是 powershell 来进行 windows 的操作,所以推荐将 wsl 的快捷打开加入到 powershell。
按照下图操作
- 打开 powershell
- 首先点击 1 位置,然后选择 settings
- 之后点击 2 位置,新增 profile
- 最后点击 3 位置,创建空的 profile
按照上述操作之后会看到以下界面,可以修改 Name 项将其命名为 ubuntu-xxx,然后将 command line 位置的路径改为安装好的 wsl 的 ubuntu.exe 的路径。
之后就可以在 第一张图的 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