anjia / blog

博客,积累与沉淀
107 stars 4 forks source link

Servo 的环境搭建 #5

Open anjia opened 6 years ago

anjia commented 6 years ago

需要安装的软件

以 MAC 为例:

  1. Homebrew
    • 一个软件包管理工具,让 Mac 上安装软件变得方便
    • 它是将软件安装到自己的目录,然后再软链到 /usr/local
  2. Python 和 pip
    • 若是用 brew install python 安装的 python,则会自动安装 pip
    • pip 是 Python 的包管理工具
    • 版本的灵活选用,非常方便
      • python --version 是电脑里默认的 python 版本
      • python3 --version 则是直接调用 python3
      • pip3 --version 则是直接调用与 python3 匹配的包管理 pip
  3. Rust 和 Cargo
    • 安装 rustup,它是 Rust 语言的 installer
    • rustup 会自动安装 Rust 和 Cargo
    • Cargo 是 Rust 的包管理(非常方便且强大的工具,类似 npm 于 node)
  4. 安装其它依赖,详见 https://github.com/servo/servo#other-dependencies
    • brew install automake pkg-config python cmake yasm
    • pip3 install virtualenv,或者需要加选项 --user
  5. 构建 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 项目依赖详细清单文件,一般不管
anjia commented 6 years ago

servo-warc-tests #6