设置顺利

Happy 仅在 Linux 上受支持,因为它严重依赖于 Linux 网络命名空间。

安装

  1. 安装所需的库:
    sudo apt-get install python-setuptools bridge-utils python-lockfile python-psutil make
  2. 克隆代码库:
    git clone https://github.com/openweave/happy.git
    
  3. 安装 Happy:
    cd happy
    make
    
    make 命令会执行两项任务:
    1. /usr/local/lib/python2.7/dist-packages 中创建一个 Happy Python 软件包
    2. 将 Happy Shell 脚本复制到 /usr/local/bin
  4. 通过运行 Happy 命令来验证安装:
    happy-state
    
    State Name:  happy
    
    NETWORKS   Name         Type   State                                     Prefixes
    
    NODES      Name    Interface    Type                                          IPs
    

支持 Weave

Happy 通过 OpenWeave 支持 Weave,这需要 OpenWeave build 和一些额外的配置。将 OpenWeave 与 Happy 集成的最快捷方式是构建独立应用。

  1. 安装构建工具链以及 OpenWeave 所需的所有依赖项:
    sudo apt-get update
    sudo apt-get install -y autotools-dev build-essential git lcov /
                         libdbus-1-dev libglib2.0-dev libssl-dev /
                         libudev-dev python2.7 python-software-properties
    sudo apt-get install -y --force-yes gcc-arm-none-eabi
    sudo apt-get update -qq
  2. 克隆 OpenWeave 代码库:
    git clone https://github.com/openweave/openweave-core.git
    
  3. 构建独立的 OpenWeave 应用:
    cd <path-to-openweave-core>
    make -f Makefile-Standalone
    
  4. 在 Happy 配置中设置 Weave 路径:
    happy-configuration weave_path <path-to-openweave-core>/build/x86_64-unknown-linux-gnu/src/test-apps
    
  5. 更新 $PATH 环境变量,使其知道在哪里查找 Weave 的满意二进制文件:
    export PATH=$PATH:<path-to-openweave-core>/src/test-apps/happy/bin
    
  6. 测试该配置。您应该能够为 Happy 运行 Weave 命令:
    weave-state
    
    State Name:  weave
    
    NODES                Name       Weave Node Id    Pairing Code
    
    FABRIC          Fabric Id           Global Prefix
    

卸载

  1. 确保删除所有虚拟节点和网络:
    happy-state-delete
  2. 卸载 Happy:
    cd <path-to-happy>
    make uninstall
  3. 删除所有其他 Happy 文件:
    rm -f ~/.happy_state.json
    rm -f ~/.happy_conf.json
    rm -f ~/.happy_state.json.lock
    cd /usr/local/lib/python2.7/dist-packages
    rm -f happy*

如果您使用并发状态等高级功能,则应单独删除每个状态。请参阅并行卸载 状态