blob: bffb699cc2a0484450acd5d6e311f1335a0d9259 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pegasus | Compile From Source</title>
<link rel="stylesheet" href="/assets/css/app.css">
<link rel="shortcut icon" href="/assets/images/favicon.ico">
<link href="https://cdn.bootcdn.net/ajax/libs/tailwindcss/1.8.10/utilities.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" />
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/font-awesome/5.13.0/js/all.min.js"></script>
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Compile From Source | Pegasus</title>
<meta name="generator" content="Jekyll v4.2.2" />
<meta property="og:title" content="Compile From Source" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Pegasus目前只支持Linux平台进行源码编译。编译过程中遇到问题,可以通过Github Issues向我们咨询。" />
<meta property="og:description" content="Pegasus目前只支持Linux平台进行源码编译。编译过程中遇到问题,可以通过Github Issues向我们咨询。" />
<meta property="og:site_name" content="Pegasus" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2022-04-26T08:56:59+00:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Compile From Source" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-04-26T08:56:59+00:00","datePublished":"2022-04-26T08:56:59+00:00","description":"Pegasus目前只支持Linux平台进行源码编译。编译过程中遇到问题,可以通过Github Issues向我们咨询。","headline":"Compile From Source","mainEntityOfPage":{"@type":"WebPage","@id":"/1.12.0/docs/build/compile-from-source/"},"url":"/1.12.0/docs/build/compile-from-source/"}</script>
<!-- End Jekyll SEO tag -->
</head>
<body>
<div class="dashboard is-full-height">
<!-- left panel -->
<div class="dashboard-panel is-medium is-hidden-mobile pl-0">
<div class="dashboard-panel-header has-text-centered">
<a href="/">
<img src="/assets/images/pegasus-logo-inv.png" style="width: 80%;">
</a>
<div class="dropdown pt-3 has-text-left">
<div class="dropdown-trigger">
<button class="button" aria-haspopup="true" aria-controls="dropdown-menu3">
<span>1.12.0</span>
<span class="icon is-small">
<i class="fas fa-angle-down" aria-hidden="true"></i>
</span>
</button>
</div>
<div class="dropdown-menu">
<div class="dropdown-content">
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/docs/build/compile-from-source/" class="dropdown-item ">
2.1.0
<b> (latest)</b>
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/2.0.0/docs/build/compile-from-source/" class="dropdown-item ">
2.0.0
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.12.3/docs/build/compile-from-source/" class="dropdown-item ">
1.12.3
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.12.0/docs/build/compile-from-source/" class="dropdown-item is-active">
1.12.0
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.11.6/docs/build/compile-from-source/" class="dropdown-item ">
1.11.6
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.11.3/docs/build/compile-from-source/" class="dropdown-item ">
1.11.3
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.10.0/docs/build/compile-from-source/" class="dropdown-item ">
1.10.0
</a>
<!--URL of our latest verion always starts without version prefixed.-->
<a href="/1.9.0/docs/build/compile-from-source/" class="dropdown-item ">
1.9.0
</a>
</div>
</div>
</div>
</div>
<div class="dashboard-panel-main is-scrollable pl-6">
<aside class="menu">
<p class="menu-label">Pegasus产品文档</p>
<ul class="menu-list">
<li>
<a href="/docs/downloads"
class="">
下载
</a>
</li>
</ul>
<p class="menu-label">编译构建</p>
<ul class="menu-list">
<li>
<a href="/docs/build/compile-by-docker"
class="">
使用Docker完成编译(推荐)
</a>
</li>
<li>
<a href="/docs/build/compile-from-source"
class="">
从源码编译
</a>
</li>
</ul>
<p class="menu-label">客户端库</p>
<ul class="menu-list">
<li>
<a href="/clients/java-client"
class="">
Java客户端
</a>
</li>
<li>
<a href="/clients/cpp-client"
class="">
C++客户端
</a>
</li>
<li>
<a href="https://github.com/XiaoMi/pegasus-go-client"
class="">
Golang客户端
</a>
</li>
<li>
<a href="/clients/python2-client"
class="">
Python2客户端
</a>
</li>
<li>
<a href="/clients/python3-client"
class="">
Python3客户端
</a>
</li>
<li>
<a href="/clients/node-client"
class="">
NodeJS客户端
</a>
</li>
<li>
<a href="/clients/scala-client"
class="">
Scala客户端
</a>
</li>
</ul>
<p class="menu-label">生态工具</p>
<ul class="menu-list">
<li>
<a href="/docs/tools/shell"
class="">
Pegasus Shell 工具
</a>
</li>
<li>
<a href="https://github.com/pegasus-kv/admin-cli"
class="">
集群管理命令行
</a>
</li>
<li>
<a href="https://github.com/pegasus-kv/pegic"
class="">
数据访问命令行
</a>
</li>
</ul>
<p class="menu-label">用户接口</p>
<ul class="menu-list">
<li>
<a href="/api/ttl"
class="">
TTL
</a>
</li>
<li>
<a href="/api/single-atomic"
class="">
单行原子操作
</a>
</li>
<li>
<a href="/api/redis"
class="">
Redis适配
</a>
</li>
<li>
<a href="/api/geo"
class="">
GEO支持
</a>
</li>
<li>
<a href="/api/http"
class="">
HTTP接口
</a>
</li>
</ul>
<p class="menu-label">高效运维</p>
<ul class="menu-list">
<li>
<a href="/administration/deployment"
class="">
集群部署
</a>
</li>
<li>
<a href="/administration/config"
class="">
配置说明
</a>
</li>
<li>
<a href="/administration/rebalance"
class="">
负载均衡
</a>
</li>
<li>
<a href="/administration/monitoring"
class="">
可视化监控
</a>
</li>
<li>
<a href="/administration/rolling-update"
class="">
集群升级
</a>
</li>
<li>
<a href="/administration/scale-in-out"
class="">
集群扩容缩容
</a>
</li>
<li>
<a href="/administration/resource-management"
class="">
资源管理
</a>
</li>
<li>
<a href="/administration/cold-backup"
class="">
冷备份
</a>
</li>
<li>
<a href="/administration/meta-recovery"
class="">
元数据恢复
</a>
</li>
<li>
<a href="/administration/replica-recovery"
class="">
Replica数据恢复
</a>
</li>
<li>
<a href="/administration/zk-migration"
class="">
Zookeeper迁移
</a>
</li>
<li>
<a href="/administration/table-migration"
class="">
Table迁移
</a>
</li>
<li>
<a href="/administration/table-soft-delete"
class="">
Table软删除
</a>
</li>
<li>
<a href="/administration/table-env"
class="">
Table环境变量
</a>
</li>
<li>
<a href="/administration/remote-commands"
class="">
远程命令
</a>
</li>
<li>
<a href="/administration/partition-split"
class="">
Partition-Split
</a>
</li>
<li>
<a href="/administration/duplication"
class="">
跨机房同步
</a>
</li>
<li>
<a href="/administration/compression"
class="">
数据压缩
</a>
</li>
<li>
<a href="/administration/throttling"
class="">
流量控制
</a>
</li>
<li>
<a href="/administration/experiences"
class="">
运维经验
</a>
</li>
<li>
<a href="/administration/manual-compact"
class="">
Manual Compact功能
</a>
</li>
<li>
<a href="/administration/usage-scenario"
class="">
Usage Scenario功能
</a>
</li>
<li>
<a href="/administration/bad-disk"
class="">
坏盘检修
</a>
</li>
<li>
<a href="/administration/whitelist"
class="">
白名单
</a>
</li>
<li>
<a href="/administration/backup-request"
class="">
Backup Request
</a>
</li>
<li>
<a href="/administration/hotspot-detection"
class="">
热点检测
</a>
</li>
</ul>
</aside>
</div>
</div>
<!-- main section -->
<div class="dashboard-main is-scrollable">
<nav class="navbar is-hidden-desktop">
<div class="navbar-brand">
<a href="/" class="navbar-item">
<!-- Pegasus Icon -->
<img src="/assets/images/pegasus-square.png">
</a>
<div class="navbar-item">
<!--A simple language switch button that only supports zh and en.-->
<!--IF its language is zh, then switches to en.-->
<a class="button is-light is-outlined is-inverted" href="/en/1.12.0/docs/build/compile-from-source/"><strong>En</strong></a>
</div>
<a role="button" class="navbar-burger burger" aria-label="menu" aria-expanded="false" data-target="navMenu">
<!-- Appears in mobile mode only -->
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
</div>
<div class="navbar-menu" id="navMenu">
<div class="navbar-end">
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
Pegasus产品文档
</span>
</a>
<div class="navbar-dropdown">
<a href="/docs/downloads"
class="navbar-item ">
下载
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
编译构建
</span>
</a>
<div class="navbar-dropdown">
<a href="/docs/build/compile-by-docker"
class="navbar-item ">
使用Docker完成编译(推荐)
</a>
<a href="/docs/build/compile-from-source"
class="navbar-item ">
从源码编译
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
客户端库
</span>
</a>
<div class="navbar-dropdown">
<a href="/clients/java-client"
class="navbar-item ">
Java客户端
</a>
<a href="/clients/cpp-client"
class="navbar-item ">
C++客户端
</a>
<a href="https://github.com/XiaoMi/pegasus-go-client"
class="navbar-item ">
Golang客户端
</a>
<a href="/clients/python2-client"
class="navbar-item ">
Python2客户端
</a>
<a href="/clients/python3-client"
class="navbar-item ">
Python3客户端
</a>
<a href="/clients/node-client"
class="navbar-item ">
NodeJS客户端
</a>
<a href="/clients/scala-client"
class="navbar-item ">
Scala客户端
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
生态工具
</span>
</a>
<div class="navbar-dropdown">
<a href="/docs/tools/shell"
class="navbar-item ">
Pegasus Shell 工具
</a>
<a href="https://github.com/pegasus-kv/admin-cli"
class="navbar-item ">
集群管理命令行
</a>
<a href="https://github.com/pegasus-kv/pegic"
class="navbar-item ">
数据访问命令行
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
用户接口
</span>
</a>
<div class="navbar-dropdown">
<a href="/api/ttl"
class="navbar-item ">
TTL
</a>
<a href="/api/single-atomic"
class="navbar-item ">
单行原子操作
</a>
<a href="/api/redis"
class="navbar-item ">
Redis适配
</a>
<a href="/api/geo"
class="navbar-item ">
GEO支持
</a>
<a href="/api/http"
class="navbar-item ">
HTTP接口
</a>
</div>
</div>
<!--dropdown-->
<div class="navbar-item has-dropdown is-hoverable">
<a href=""
class="navbar-link ">
<span>
高效运维
</span>
</a>
<div class="navbar-dropdown">
<a href="/administration/deployment"
class="navbar-item ">
集群部署
</a>
<a href="/administration/config"
class="navbar-item ">
配置说明
</a>
<a href="/administration/rebalance"
class="navbar-item ">
负载均衡
</a>
<a href="/administration/monitoring"
class="navbar-item ">
可视化监控
</a>
<a href="/administration/rolling-update"
class="navbar-item ">
集群升级
</a>
<a href="/administration/scale-in-out"
class="navbar-item ">
集群扩容缩容
</a>
<a href="/administration/resource-management"
class="navbar-item ">
资源管理
</a>
<a href="/administration/cold-backup"
class="navbar-item ">
冷备份
</a>
<a href="/administration/meta-recovery"
class="navbar-item ">
元数据恢复
</a>
<a href="/administration/replica-recovery"
class="navbar-item ">
Replica数据恢复
</a>
<a href="/administration/zk-migration"
class="navbar-item ">
Zookeeper迁移
</a>
<a href="/administration/table-migration"
class="navbar-item ">
Table迁移
</a>
<a href="/administration/table-soft-delete"
class="navbar-item ">
Table软删除
</a>
<a href="/administration/table-env"
class="navbar-item ">
Table环境变量
</a>
<a href="/administration/remote-commands"
class="navbar-item ">
远程命令
</a>
<a href="/administration/partition-split"
class="navbar-item ">
Partition-Split
</a>
<a href="/administration/duplication"
class="navbar-item ">
跨机房同步
</a>
<a href="/administration/compression"
class="navbar-item ">
数据压缩
</a>
<a href="/administration/throttling"
class="navbar-item ">
流量控制
</a>
<a href="/administration/experiences"
class="navbar-item ">
运维经验
</a>
<a href="/administration/manual-compact"
class="navbar-item ">
Manual Compact功能
</a>
<a href="/administration/usage-scenario"
class="navbar-item ">
Usage Scenario功能
</a>
<a href="/administration/bad-disk"
class="navbar-item ">
坏盘检修
</a>
<a href="/administration/whitelist"
class="navbar-item ">
白名单
</a>
<a href="/administration/backup-request"
class="navbar-item ">
Backup Request
</a>
<a href="/administration/hotspot-detection"
class="navbar-item ">
热点检测
</a>
</div>
</div>
</div>
</div>
</nav>
<nav class="navbar is-hidden-mobile">
<div class="navbar-start w-full">
<div class="navbar-item pl-0 w-full">
<!--TODO(wutao): Given the limitation of docsearch that couldn't handle multiple input,
I make searchbox only shown in desktop. Fix this issue when docsearch.js v3 released.
Related issue: https://github.com/algolia/docsearch/issues/230-->
<div class="navbar-searchbox w-full bg-gray-200">
<div class="field">
<div class="control has-icons-right">
<input class="input searchbox-input focus:placeholder-transparent"
type="text" placeholder="Search the docs">
<span class="icon is-right">
<i class="fas fa-search searchbox-icon"></i>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="navbar-end">
<div class="navbar-item">
<!--A simple language switch button that only supports zh and en.-->
<!--IF its language is zh, then switches to en.-->
<a class="button is-light is-outlined is-inverted" href="/en/1.12.0/docs/build/compile-from-source/"><strong>En</strong></a>
</div>
</div>
</nav>
<section class="hero is-info lg:mr-3">
<div class="hero-body">
<p class="title is-size-2 is-centered">从源码编译</p>
</div>
</section>
<section class="section" style="padding-top: 2rem;">
<div class="content">
<p>Pegasus目前只支持Linux平台进行源码编译。编译过程中遇到问题,可以通过<a href="https://github.com/apache/incubator-pegasus/issues">Github Issues</a>向我们咨询。</p>
<h2 id="环境要求">环境要求</h2>
<ul>
<li>GCC 4.9.4+</li>
<li>CMake 3.11+</li>
</ul>
<h2 id="ubuntu环境配置">Ubuntu环境配置</h2>
<p>你可以参考 <a href="https://github.com/pegasus-kv/pegasus-docker/blob/1.12.0/pegasus-build-env/ubuntu16.04/Dockerfile">pegasus-build-dev/ubuntu16.04</a> 的Docker镜像安装全部依赖。</p>
<h2 id="centos环境配置">CentOS环境配置</h2>
<p>你可以参考 <a href="https://github.com/pegasus-kv/pegasus-docker/blob/1.12.0/pegasus-build-env/centos7/Dockerfile">pegasus-build-dev/centos7</a> 的Docker镜像安装全部依赖。</p>
<h2 id="源码编译">源码编译</h2>
<p>请先参考<a href="/docs/downloads">下载文档</a>获取源码。</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh build <span class="nt">-c</span>
</code></pre></div></div>
<p>编译后输出会放在当前目录的<code class="language-plaintext highlighter-rouge">DSN_ROOT/</code>文件夹下,里面包含bin、include、lib目录。</p>
<h2 id="编译打包">编译打包</h2>
<p>打包server端程序包,用于服务部署:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh pack_server
</code></pre></div></div>
<p>打包client端库,用于C/C++端客户端开发:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh pack_client
</code></pre></div></div>
<p>打包tools工具集,里面包含了各种工具(shell、bench):</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>./run.sh pack_tools
</code></pre></div></div>
<p>编译成功后,推荐先<a href="/overview/onebox">体验onebox集群</a></p>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="content is-small has-text-centered">
<div style="margin-bottom: 20px;">
<a href="http://incubator.apache.org"><img src="/assets/images/egg-logo.png"
alt="Apache Incubator"/></a>
</div>
Copyright &copy; 2020 <a href="http://www.apache.org">The Apache Software Foundation</a>.
Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version
2.0</a>.
<br><br>
Apache Pegasus is an effort undergoing incubation at The Apache Software Foundation (ASF),
sponsored by the Apache Incubator. Incubation is required of all newly accepted projects
until a further review indicates that the infrastructure, communications, and decision making process
have stabilized in a manner consistent with other successful ASF projects. While incubation status is
not necessarily a reflection of the completeness or stability of the code, it does indicate that the
project has yet to be fully endorsed by the ASF.
</div>
</div>
</footer>
</div>
<!-- right panel -->
<div class="dashboard-panel is-small is-scrollable is-hidden-mobile">
<p class="menu-label">
<span class="icon">
<i class="fa fa-bars" aria-hidden="true"></i>
</span>
本页导航
</p>
<ul class="menu-list">
<li><a href="#环境要求">环境要求</a></li>
<li><a href="#ubuntu环境配置">Ubuntu环境配置</a></li>
<li><a href="#centos环境配置">CentOS环境配置</a></li>
<li><a href="#源码编译">源码编译</a></li>
<li><a href="#编译打包">编译打包</a></li>
</ul>
</div>
</div>
<script src="/assets/js/app.js" type="text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
<script>
docsearch({
indexName: 'apache_pegasus',
apiKey: '676624c2d6dc00808d3b7cf6724fc3c8',
inputSelector: '.searchbox-input',
debug: true,
});
</script>
</body>
</html>