源码编译

从github获取Pegasus源代码,并递归获取其依赖的rDSN

  1. git clone https://github.com/xiaomi/pegasus.git --recursive
  2. cd pegasus

如果要编译发布的稳定版本,请checkout至相应的tag(建议用最新的release版本),譬如:

  1. git checkout -b v1.11.2 v1.11.2
  2. git submodule update

运行build命令进行编译,该命令使用CMake来进行构建:

  1. ./run.sh build

build命令支持以下参数:

  • —compiler:指定C和C++编译器,通过逗号分隔的,默认为"gcc,g++"。
  • -t|—type:指定编译类型是debug还是release,默认为release。
  • -j|—jobs:指定编译的并发度,默认为8。
  • -b|—boost_dir:指定boost安装路径,如果不指定则使用系统自带的boost。
  • -w|—warning_all:打开所有编译警告,默认不打开。
  • -v|—verbose:输出详细的编译信息,默认不输出。
  • -c|—clear:在编译前先清理环境(不清理thirdparty),默认不清理。
  • -cc|—harf-clear:在编译前先清理环境(不清理rdsn和thirdparty),默认不清理。
  • —thirdparty:在编译前清理所有环境(包括thirdparty),默认不清理。编译后输出会放在当前目录的DSN_ROOT/文件夹下,里面包含bin、include、lib目录。

可以用pack_server命令打包server端程序包,用于部署cluser:

  1. ./run.sh pack_server

可以用pack_client命令打包client端库,用于C/C++端客户端开发:

  1. ./run.sh pack_client

可以用pack_tools命令打包tools包,里面包含了各种工具(shell、bench):

  1. ./run.sh pack_tools

编译成功后,推荐先体验onebox集群