blog
blog copied to clipboard
Servo 的环境搭建
需要安装的软件
以 MAC 为例:
-
Homebrew
- 一个软件包管理工具,让 Mac 上安装软件变得方便
- 它是将软件安装到自己的目录,然后再软链到 /usr/local
- Python 和 pip
- 若是用
brew install python
安装的 python,则会自动安装 pip - pip 是 Python 的包管理工具
- 版本的灵活选用,非常方便
-
python --version
是电脑里默认的 python 版本 -
python3 --version
则是直接调用 python3 -
pip3 --version
则是直接调用与 python3 匹配的包管理 pip
-
- 若是用
- Rust 和 Cargo
- 安装 rustup,它是 Rust 语言的 installer
- rustup 会自动安装 Rust 和 Cargo
- Cargo 是 Rust 的包管理(非常方便且强大的工具,类似 npm 于 node)
- 安装其它依赖,详见 https://github.com/servo/servo#other-dependencies
-
brew install automake pkg-config python cmake yasm
-
pip3 install virtualenv
,或者需要加选项--user
-
- 构建 Servo,详见 https://github.com/servo/servo#building
-
./mach build --dev
0:38:02 -
./mach build --release
0:42:16
-
virtualenv 能创建一个隔绝的 python 环境(新的文件夹),里面包含所有必要的可执行文件,诸如对应的 Python 和 pip 等。
e.g.
# 1. 安装 homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 2. 安装 Python 和 pip
brew install python # Homebrew 会安装 pip3, pip3 是 Homebrew 版 Python 3 的 pip 的别名
python3 --version # Python 3.5.2
pip3 --version # pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
# 4. 安装 virtualenv
pip3 install virtualenv
virtualenv --version # 16.0.0
# 安装 proxychains-ng
brew install proxychains-ng # pywb 要用代理模式
# run with proxychains4,
e.g. Python
python # 将打开 python 解释器
python2 # python2 解释器
python3 # python3 解释器
python --version
python3 --version
e.g. virtualenv
virtualenv -p python3 venv # 指定python的版本,用virtualenv创建一个虚拟环境,虚拟环境的名字是“venv”,会创建一个文件夹,包含了python的可执行文件+pip库的拷贝,这样就随便安装其它包了)
source venv/bin/activate # 激活虚拟环境
pip3 install git+https://github.com/ikreymer/pywb.git
# 4.1 为工程创建一个虚拟环境
cd my_project_folder
virtualenv my_project # 会在当前的目录中创建一个文件夹
# 包含了Python可执行文件,以及 pip 库的一份拷贝,这样就能安装其他包了。
# 虚拟环境的名字(my_project)可以是任意的,若省略则会将文件均放在当前目录
# or
virtualenv -p /usr/bin/python2.7 my_project # 指定python解释器
# 4.2 开始使用虚拟环境,需要先被激活
source my_project/bin/activate
# 4.3 停用虚拟环境,如果您在虚拟环境中暂时完成了工作
$ deactivate # 这将会回到系统默认的Python解释器,包括已安装的库也会回到默认的。
rm -rf my_project # 要删除一个虚拟环境,只需删除它的文件夹
# 然后过了一段时间,你可能会有很多个虚拟环境散落在系统各处,有可能已经忘了它们的名字/位置
# 还有其它工具,方便你管理虚拟环境。略。
e.g. Rust 的 Hello world
## cargo 和 rust 语言及其编译器 rustc 本身的各种特性紧密结合
## 基本上 rust 开发管理中所需的手段,cargo 都有
$ cargo new hello_world --bin
# 使用 cargo new 在当前目录下新建了基于 cargo 管理的 rust 项目
# 项目名称为 hello_world
# --bin 表示该项目将生成可执行文件
$ cd hello_world
$ tree . # 瞄眼目录结构
$ cargo build # cargo 自动构建好全部
$ cargo run # 运行
$ cargo clean # 清理 target 文件夹
$ cargo update # 根据 toml 描述文件重新检索并更新各种依赖项的信息,并写入 lock 文件
$ cargo install # 实际的生产部署
## 两个核心文件:
## cargo.homl 项目数据描述文件,直接面向rust开发人员,决定了项目如何构建、测试、运行
## cargo.lock 项目依赖详细清单文件,一般不管
servo-warc-tests #6