
云原生【免费下载链接】mesosApache Mesos项目地址https://gitcode.com/gh_mirrors/mesos2/mesos点击查看免费下载Apache Mesos 是一套面向大规模集群的资源管理与任务调度平台支持将数据中心的多台物理机抽象为单一资源池并为上层框架提供 CPU、内存、磁盘等资源的统一分配。本文以当前仓库版本 1.10.1中的官方构建指南docs/building.md为骨架完整覆盖从源码获取、系统依赖安装、Autotools 与 CMake 两种构建方式到启动 master/agent 并运行 C/Java/Python 示例框架的完整链路并结合仓库内 configure.ac、Makefile.am、3rdparty/versions.am 等构建系统的源码实现深入讲解编译器版本要求、捆绑依赖机制、常用 configure 选项的底层含义。读完本文你将能够在一台干净的主机上独立完成 Mesos 的编译、测试、安装并正确排解构建过程中常见的环境问题。获取 Mesos 源码构建 Mesos 的第一步是拿到源码官方提供了两种途径二者在后续构建流程上略有差别是否执行bootstrap。方式一下载官方发布包推荐从 Apache 发布页下载最新稳定版本并解压$ wget http://www.apache.org/dist/mesos/1.9.0/mesos-1.9.0.tar.gz $ tar -zxf mesos-1.9.0.tar.gz发布包内已随附生成好的configure脚本与各类构建文件因此不需要执行bootstrap可直接进入“从源码构建”环节。需要说明的是当前仓库对应的版本为 1.10.1见 configure.ac 中的AC_INIT([mesos], [1.10.1])与 CMakeLists.txt 中的版本定义实际下载时请以发布页提供的最新版本号为准。方式二克隆 Git 仓库高级用户$ git clone https://gitbox.apache.org/repos/asf/mesos.git从 Git 仓库构建时源码树中默认不包含由 autotools 生成的configure等文件必须先执行./bootstrap生成它们详见下文。此外无论是wget、tar还是git若本机缺少这些工具请先按下一节的“系统要求”安装对应工具。系统要求Mesos 官方支持在 Linux64 位与 macOS64 位上运行构建从源码构建需要 GCC 4.8.1 或 Clang 3.5 编译器。这个版本门槛并非随意设定——configure.ac 在配置阶段会通过AX_COMPARE_VERSION校验 GCC 版本一旦检测到 GCC 4.8 会直接以AC_MSG_ERROR([GCC 4.8 or higher required ...])终止配置同时 configure.ac 强制要求 C11 标准AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])并对 C 标准库做兼容性黑名单检查configure.aclibstdc 需来自 GCC 4.8.0libc 需来自 LLVM/Clang 3.5否则同样报错退出。对 Linux 而言内核版本要求构建与运行时均要求内核 2.6.28若要完整支持进程隔离process isolation能力则需要更新的内核 3.10。主机名解析请确保主机名可通过 DNS 或/etc/hosts解析以便完整支持 Docker 的 host-networking 能力部分 Mesos 测试依赖于此。拿不准时请验证/etc/hosts中是否包含你的主机名。Mesos agent 也支持在 Windows 上运行构建方法见 Windows 构建指南下文亦会给出摘要。提示如果系统上同时存在多个 Python 版本构建系统默认使用 Python 2 2.6 且 3.0见 configure.ac可通过PYTHON环境变量显式指定解释器。按平台安装系统依赖官方指南针对几种常见发行版给出了明确的依赖安装步骤。以下命令均以 root 或 sudo 执行请根据实际发行版选择对应小节。Ubuntu 14.04# 更新软件源。 $ sudo apt-get update # 安装几个基础工具。 $ sudo apt-get install -y tar wget git # 安装最新的 OpenJDK。 $ sudo apt-get install -y openjdk-7-jdk # 安装 autotools仅从 Git 仓库构建时需要。 $ sudo apt-get install -y autoconf libtool # 安装 Mesos 其余依赖。 $ sudo apt-get -y install build-essential python-dev python-six python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-devUbuntu 16.04# 更新软件源。 $ sudo apt-get update # 安装几个基础工具。 $ sudo apt-get install -y tar wget git # 安装最新的 OpenJDK。 $ sudo apt-get install -y openjdk-8-jdk # 安装 autotools仅从 Git 仓库构建时需要。 $ sudo apt-get install -y autoconf libtool # 安装 Mesos 其余依赖。 $ sudo apt-get -y install build-essential python-dev python-six python-virtualenv libcurl4-nss-dev libsasl2-dev libsasl2-modules maven libapr1-dev libsvn-dev zlib1g-dev iputils-pingmacOS 10.11 (El Capitan) / macOS 10.12 (Sierra)使用 Apple 自带工具链构建时需要 Xcode 8.0 的 Command Line ToolsXcode 8 要求 macOS 10.11.5 及以上# 安装 Python 3https://www.python.org/downloads/ # 安装 Command Line Tools要求 Xcode 8.0。 $ xcode-select --install # 安装 Homebrew。 $ ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install) # 安装 Java。 $ brew install Caskroom/cask/java # 安装库。 $ brew install wget git autoconf automake libtool subversion maven xz # 安装 Python 依赖。 $ sudo easy_install pip $ pip install virtualenv在 macOS 10.12 上编译时还有额外的注意事项# 系统自带的 svn 与 apr 头文件存在不兼容问题 # 需要从 brew 安装的 subversion 中取得 svn 与 apr 头文件。 # 若已通过 brew 安装过 subversion可能需要先 unlink 以便正确 configure。 $ brew unlink subversion # 如已安装 $ brew install subversion # 配置时 brew 的 svn 和 apr 头文件会被自动检测无需显式指定路径。 # 如果构建因编译器警告失败可向 configure 传入 --disable-werror # 避免把警告当作错误处理。 $ ../configure # 最后运行 libprocess 测试时可能遇到如下错误 $ ./libprocess-tests Failed to obtain the IP address for hostname; the DNS service may not be able to resolve it: nodename nor servname provided, or not known # 如果遇到该错误请在 系统偏好设置 共享 中打开远程登录Remote Login来解决。注意从 Yosemite 升级到 El Capitan 后务必重新执行xcode-select --install。CentOS 6.6# 安装较新的内核以获得完整的进程隔离支持。 $ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org $ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm $ sudo yum --enablerepoelrepo-kernel install -y kernel-lt # 让刚安装的内核成为默认启动内核然后重启。 $ sudo sed -i s/default1/default0/g /boot/grub/grub.conf $ sudo reboot # 安装几个基础工具。这同时会强制更新 nss # 而 nss 更新对于 Java 绑定能够正常构建是必需的。 $ sudo yum install -y tar wget git which nss # Mesos 0.21.0 需要完整支持 C11 的 C 编译器如 GCC 4.8 # 可通过 devtoolset-2 获得。先获取 Scientific Linux CERN devtoolset 仓库文件。 $ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo # 导入 CERN GPG 密钥。 $ sudo rpm --import http://linuxsoft.cern.ch/cern/centos/7/os/x86_64/RPM-GPG-KEY-cern # 获取 Apache Maven 仓库文件。 $ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo # Mesos 0.21.0 需要 subversion 1.8 的开发包 # 而默认仓库中并没有。创建一个 WANdisco SVN 仓库文件以安装正确版本 $ sudo bash -c cat /etc/yum.repos.d/wandisco-svn.repo EOF [WANdiscoSVN] nameWANdisco SVN Repo 1.8 enabled1 baseurlhttp://opensource.wandisco.com/centos/6/svn-1.8/RPMS/$basearch/ gpgcheck1 gpgkeyhttp://opensource.wandisco.com/RPM-GPG-KEY-WANdisco EOF # 安装基础开发工具。 $ sudo yum groupinstall -y Development Tools # 安装 devtoolset-2-toolchain其中包含 GCC 4.8.2 及相关软件包。 # 安装 devtoolset-3 可能是更好的选择因为 devtoolset-2 中的 elfutils # 版本可能与 perf 冲突。 $ sudo yum install -y devtoolset-2-toolchain # 安装 Mesos 其余依赖。 $ sudo yum install -y apache-maven python-devel python-six python-virtualenv java-1.7.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-devel # 进入启用了 devtoolset-2 的 shell。 $ scl enable devtoolset-2 bash $ g --version # 确认 GCC 4.8 # 进程隔离使用由 cgconfig 管理的 cgroups。 # CentOS 6.6 默认不会启动 cgconfig 服务 # 且默认配置没有挂载 perf_event 子系统。 # 如需挂载请在 /etc/cgconfig.conf 的条目中加入 perf_event /cgroup/perf_event;。 $ sudo yum install -y libcgroup $ sudo service cgconfig startCentOS 7.1# 安装几个基础工具。 $ sudo yum install -y tar wget git # 获取 Apache Maven 仓库文件。 $ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo # 安装 EPEL 仓库以便在下面的 subversion 安装中拉取 libserf-1。 $ sudo yum install -y epel-release # Mesos 0.21.0 需要 subversion 1.8 的开发包 # 默认仓库中并没有。创建 WANdisco SVN 仓库文件以安装正确版本 $ sudo bash -c cat /etc/yum.repos.d/wandisco-svn.repo EOF [WANdiscoSVN] nameWANdisco SVN Repo 1.9 enabled1 baseurlhttp://opensource.wandisco.com/centos/7/svn-1.9/RPMS/\$basearch/ gpgcheck1 gpgkeyhttp://opensource.wandisco.com/RPM-GPG-KEY-WANdisco EOF # Mesos 的部分功能依赖 systemd 才能工作且只支持包含 Delegate 标志的 # systemd 版本。该标志最早在 systemd 218 中引入低于 CentOS 默认安装的 # 版本。幸运的是 CentOS 7.1 带有经过修补、包含 Delegate 标志的 # systemd 218。请显式将 systemd 更新到该修补版本。 $ sudo yum update systemd # 安装基础开发工具。 $ sudo yum groupinstall -y Development Tools # 安装 Mesos 其余依赖。 $ sudo yum install -y apache-maven python-devel python-six python-virtualenv java-1.8.0-openjdk-devel zlib-devel libcurl-devel openssl-devel cyrus-sasl-devel cyrus-sasl-md5 apr-devel subversion-devel apr-util-develWindowsMesos 自 1.0.0 起对 Windows 提供实验性支持构建方式与 POSIX 完全不同使用 CMake Visual Studio。请参考 Windows 构建指南 的完整说明其核心要点如下系统要求Visual Studio 2017Community 版即可安装时勾选 Desktop development with C 工作负载、CMake 3.8.0、GNU patch for Windows、Git从源码构建时且构建目录路径中不能有空格如C:/Program Files (x86)/mesos即为非法路径。构建命令Windows 10git clone https://gitbox.apache.org/repos/asf/mesos.git cd mesos mkdir build cd build cmake .. -G Visual Studio 15 2017 Win64 -T hostx64 cmake --build .运行 agent.\src\mesos-agent.exe --mastermaster --work_dirwork folder --launcher_dirrepository\build\src已知限制Windows 上建议只运行 agentmaster 可启动但仅用于测试不支持高可用最低支持 Windows 10 Creators Update1703build 15063与 Windows Server 1709非管理员用户创建符号链接需要开启开发者模式。从源码构建POSIX环境就绪后进入 Mesos 源码根目录执行以下步骤# 进入工作目录。 $ cd mesos # Bootstrap仅从 Git 仓库构建时需要执行。 $ ./bootstrap # 配置并构建。 $ mkdir build $ cd build $ ../configure $ make关于./bootstrap它由 bootstrap 脚本实现核心逻辑是校验当前目录是否包含configure.ac否则报错 You must run bootstrap from the root of the distribution.随后调用autoreconf --install -Wall --verbose递归生成configure、各Makefile.in等文件。脚本还会校验AUTOMAKE/ACLOCAL环境变量的一致性若只设置了其中一个会给出明确的错误提示例如AUTOMAKE/usr/local/bin/automake-1.12 ACLOCAL/usr/local/bin/aclocal-1.12 ./bootstrap。发布包不需要此步骤。加速构建与降低日志噪音可以为make追加-j number of cores V0前者按 CPU 核数并行编译后者抑制每条编译命令的冗长输出$ make -j4 V0运行测试套件$ make checkmake check实际会先构建tests目标对应 src/Makefile.am 中的tests: all $(check_PROGRAMS) mesos-tests然后通过测试驱动执行./mesos-testssrc/Makefile.am。构建系统默认启用并行测试执行--disable-parallel-test-execution可关闭并行运行时除ROOT_*用例外的测试会通过 support/mesos-gtest-runner.py 驱动并发执行。安装可选$ make install安装过程除二进制与库文件外还会安装mesos.pcpkg-config 文件由 Makefile.am 定义、Python 绑定等。make install时 Python 包默认会联网安装缺失的依赖若希望安装过程不下载任何外部依赖可配置时加上--disable-python-dependency-install这也是官方distcheck使用的标志见 Makefile.am。深入 configure构建配置的底层机制../configure是构建过程中最关键的一步。它以 configure.ac2900 余行 autoconf 脚本为蓝图完成平台识别、编译器校验、依赖探测、可选特性开关、config.status生成与文件替换等全部工作。理解其内部机制能帮你精准解决 90% 的构建失败问题。编译器与平台自动校验默认选择g/gcc工具链configure.ac同时兼容 Clang。强制 C11AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])。检测 GCC 4.8 直接报错检测到 Clang 时自动追加-Wno-unused-local-typedef、-Wno-inconsistent-missing-override等抑制项configure.ac。仅支持 linux / darwin / freebsd 三种平台其他平台直接报 Mesos is currently unsupported on your platformconfigure.ac。栈保护stack protector自动择优支持-fstack-protector-strong则用之否则回退到-fstack-protectorconfigure.ac这是默认启用的加固措施可通过--disable-hardening关闭。捆绑依赖bundled dependencies机制仓库 3rdparty 目录随源码打包了大量第三方依赖的 tarball 与补丁版本统一维护在 3rdparty/versions.am 中例如 Boost 1.65.0、protobuf 3.5.0、glog 0.4.0、leveldb 1.19、zookeeper 3.4.8、libevent 2.0.22-stable、libev 4.22、grpc 1.10.0、rapidjson 1.1.0、http-parser 2.6.2、googletest 1.8.0 等。默认情况下--disable-bundled未指定Mesos 会使用这些捆绑版本避免与系统库版本冲突。configure 对每个依赖遵循同一套探测逻辑以 Boost 为例见 configure.ac若用户通过--with-boostDIR指定路径或使用了--disable-bundled则尝试在系统路径中查找头文件与库找到则链接系统版本with_bundled_boostno找不到则直接报错并提示可用--with-boostDIR指定正确路径未做特殊指定时使用捆绑版本with_bundled_boostyes后续由 3rdparty/Makefile.am 从 tarball 解压、打补丁、以静态 PIC 方式就地编译--enable-sharedno --with-pic --prefix/最终链接进统一的libmesos。类似的--with-*选项还包括--with-apr、--with-curl、--with-glog、--with-gmock、--with-grpc、--with-jemalloc、--with-leveldb、--with-libev、--with-libevent、--with-libarchive、--with-libprocess、--with-libseccomp、--with-nvml、--with-picojson、--with-protobuf、--with-rapidjson、--with-sasl、--with-ssl、--with-stout、--with-svn、--with-zlib、--with-zookeeper。这些选项的含义高度一致排除捆绑版本改用指定位置或系统默认路径的预装依赖。常用可选特性开关下表整理了 configure.ac 中定义的主要--enable-*/--disable-*开关及其底层效果可供构建时按需组合配置选项默认值底层作用源码依据--disable-bundled启用捆绑依赖全局改用系统预装依赖逐个依赖探测缺任一依赖即报错--enable-debugno追加-g -fno-omit-frame-pointer仅当未显式设置 CFLAGS/CXXFLAGS 时生效--enable-optimizeno追加-O2默认无优化时为-O0--enable-gc-unusedno启用-ffunction-sections -fdata-sections与-Wl,--gc-sections回收未用程序段可显著减小产物体积工具链不支持时会直接报错configure.ac--disable-hardening启用加固关闭栈保护与位置无关代码等安全措施--enable-jemalloc-allocatorno让 mesos-master / mesos-agent 以 jemalloc 作为默认内存分配器仅支持 Linuxconfigure.ac--enable-sslno为 libprocess 通信启用 SSL需要系统存在 libssl 与 libcrypto否则报错configure.ac--enable-libeventno事件循环改用 libevent 而非默认的 libevWindows 上必需--disable-java启用不构建 Java 绑定默认需要 JDK、JNI 与 Maven见 configure.ac--disable-python启用不构建 Python 绑定默认要求 Python 2.6 且 3.0--enable-new-clino用 PyInstaller 构建新版 Python CLI要求 Python 3.6configure.ac--enable-seccomp-isolatorno构建 Seccomp isolator依赖 libseccomp 且要求 Linux 内核 3.5仅支持 Linuxconfigure.ac--enable-xfs-disk-isolatorno构建 XFS 磁盘隔离器需要内核头文件、xfsprogs 与 libblkid 开发包仅支持 Linuxconfigure.ac--enable-port-mapping-isolatorno构建端口映射网络隔离器依赖 libnl-3仅支持 Linuxconfigure.ac--enable-network-ports-isolatorno构建网络端口隔离器同样依赖 libnl-3仅支持 Linuxconfigure.ac--enable-launcher-sealingno容器初始化时将 launcher 二进制克隆进内存并密封防止被容器覆盖需要内核支持 memfd仅支持 Linuxconfigure.ac--enable-perftoolsno链接 Google perftoolsgperftools--disable-werror—不把编译器警告当错误处理macOS 构建失败的常见解药--disable-parallel-test-execution启用并行关闭make check阶段的并行测试运行器--enable-tests-installno构建并安装测试程序及其辅助工具configure.ac--enable-install-module-dependenciesno安装模块开发所需的第三方捆绑依赖--disable-libtool-wrappers—直接生成二进制而非 libtool 包装脚本可避免首次执行时的 relink会把构建目录 RPATH 编码进可执行文件一般不适合安装configure.ac--enable-lock-free-event-queue/--enable-lock-free-run-queue/--enable-last-in-first-out-fixed-size-semaphoreno为 libprocess 启用对应的无锁队列/LIFO 信号量优化configure.ac--enable-static-unimplementedno对未实现的函数生成静态断言错误此外configure 还接受若干影响构建结果的环境变量包括JAVA_HOME、JAVA_CPPFLAGS、JAVA_JVM_LIBRARY、MAVEN_HOME、PROTOBUF_JAR、PYTHON、PYTHON_3与TEST_DRIVERconfigure.ac。例如JAVA_HOME未设置时configure 会通过探测java.home系统属性自动猜测 JDK 位置若机器上只装了 JRE则会因找不到javac而报错。配置完成后configure 还会利用 Git 仓库信息生成 src/common/git_version.hpp把BUILD_GIT_SHA、BUILD_GIT_BRANCH、BUILD_GIT_TAG等宏嵌入二进制configure.ac便于后期溯源版本。最后会输出构建选项摘要包括 CXX、CXXFLAGS、CPPFLAGS、LDFLAGS 等configure.ac配置出现异常时可在此核对。使用 CMake 构建替代方案除 Autotools 外仓库还提供一套完整的 CMake 构建系统入口 CMakeLists.txt要求 CMake 3.7Windows 上要求 3.8。官方构建文档见 CMake 文档 与 CMake By Example配置选项全表见 CMake 配置选项。最简构建流程mkdir build cd build cmake .. cmake --build .cmake --build .可配合--target指定目标例如--target tests会构建mesos-tests、libprocess-tests、stout-tests也可在--后透传原生构建工具的参数如cmake --build . -- -j4。Linux 默认生成 GNU Makefiles因此配置后直接make tests亦可若使用-G Ninja生成器则改用ninja tests。CMake 还提供check、tests、package二进制包、package_source源码包输出 gzip tarball、dist/distcheck等自定义目标见 CMakeLists.txt。常用 CMake 选项详细解释见 CMake 配置选项-DVERBOSE(TRUE|FALSE)生成会产生冗长输出的构建工程默认 TRUE。-DBUILD_SHARED_LIBS(TRUE|FALSE)构建共享库Windows 默认 FALSE其余平台默认 TRUE。-DENABLE_GC_UNUSED(TRUE|FALSE)回收未用程序段显著减小产物体积默认 FALSE。-DENABLE_JAVA(TRUE|FALSE)构建 Java 组件非常慢默认 FALSE。-DENABLE_SSL(TRUE|FALSE)为 libprocess 启用 SSL默认 FALSE。-DENABLE_LIBEVENT(TRUE|FALSE)事件循环改用 libeventWindows 上必需默认 FALSE。-DENABLE_NEW_CLI(TRUE|FALSE)与-DPYTHON_3[path]构建新版 Python CLI。-DREBUNDLED(TRUE|FALSE)与-D3RDPARTY_DEPENDENCIES[path_or_url]是否使用仓库内捆绑的依赖 tarball部分依赖未随仓库捆绑如 Windows 上的系统依赖此时会从3RDPARTY_DEPENDENCIES指定的镜像获取。-DCPACK_BINARY_[TYPE](TRUE|FALSE)让package目标生成指定格式的二进制包DEB、RPM、TGZ 等默认全 FALSE。运行示例框架验证安装构建成功后可用仓库自带的示例框架做一次端到端验证。示例框架以 C、Java、Python 三种语言编写其二进制只在执行过make check之后才会生成这是 src/Makefile.am 中测试目标的构建产物。以下示例假定在本地机器上运行。# 进入构建目录。 $ cd build # 启动 Mesos master确保工作目录存在且具有合适的权限。 $ ./bin/mesos-master.sh --ip127.0.0.1 --work_dir/var/lib/mesos # 启动 Mesos agent确保工作目录存在且具有合适的权限。 $ ./bin/mesos-agent.sh --master127.0.0.1:5050 --work_dir/var/lib/mesos # 访问 Mesos 网页界面。 $ http://127.0.0.1:5050 # 运行 C 框架成功运行若干任务后退出。 $ ./src/test-framework --master127.0.0.1:5050 # 运行 Java 框架成功运行若干任务后退出。 $ ./src/examples/java/test-framework 127.0.0.1:5050 # 运行 Python 框架成功运行若干任务后退出。 $ ./src/examples/python/test-framework 127.0.0.1:5050说明与提示./bin/mesos-master.sh、./bin/mesos-agent.sh等脚本并非静态存在于仓库中而是 configure 阶段从 bin/ 目录下的.in模板如 bin/mesos-master.sh.in、bin/mesos-agent.sh.in经变量替换生成并通过chmod x赋予执行权限对应 configure.ac 的AC_CONFIG_FILES配置。工作目录/var/lib/mesos需要提前创建并确保当前用户可写否则 master/agent 无法启动。这些示例默认只适用于本地运行。若要在生产环境例如 AWS中通过网页界面查看集群必须以实际主机 IP 启动 master并确保防火墙放行外部对 5050 端口的访问否则网页无法从外部打开。若未执行make check就运行示例框架会提示找不到对应二进制。构建排错速查症状原因与对策configure 报GCC 4.8 or higher required编译器过旧。升级 GCC/Clang或CentOS 6 场景通过scl enable devtoolset-2 bash进入新版工具链环境见上文 CentOS 6.6 一节configure 报known incompatible C Standard library in useC 标准库版本过低。libstdc 需来自 GCC 4.8.0libc 需来自 LLVM/Clang 3.5configure.ac配置/编译报找不到某个库的头文件依赖缺失。核对上方对应平台的包安装清单若使用了--disable-bundled或--with-XXXDIR确认预装依赖位置正确macOS 上编译因警告失败向 configure 传入--disable-werror不要把警告视为致命错误macOS 上 libprocess 测试报Failed to obtain the IP address for hostname主机名无法解析。在 系统偏好设置 共享 中开启远程登录见 macOS 一节make check执行超时或串行默认并行测试可显著加速若确需关闭可配置时加--disable-parallel-test-execution构建产物体积过大使用--enable-gc-unused回收未用程序段可明显减小最终二进制体积Windows 上cmake --build .失败确认使用 CMake 3.8、构建目录无空格、以 x64 Native Tools Command Prompt for VS 2017 打开环境也可改用 Ninja 加速详见 Windows 构建指南延伸阅读Autotools 配置说明configure 各选项的权威参考。CMake 配置选项 与 CMake By ExampleCMake 构建的完整配置与实例。Windows 构建指南Windows 平台专属构建细节与已知限制。[构建系统源码]构建流水线的实际执行逻辑集中在 configure.ac、Makefile.am、src/Makefile.am、3rdparty/Makefile.am 与 3rdparty/versions.am深入阅读可掌握每个依赖的版本与打包方式。快速开始指南 与 代理配置参考构建成功后的运行参数配置。赞分享云原生【免费下载链接】mesosApache Mesos项目地址https://gitcode.com/gh_mirrors/mesos2/mesos点击查看免费下载相关推荐Apache Mesos 源码编译构建完整指南环境准备、Autotools 与 CMake 双构建路径及示例框架运行Apache Mesos 源码编译构建完整指南环境准备、Autotools 与 CMake 双构建路径及示例框架运行 Apache Mesos 是面向数据中心集群管理任务调度后端Apache Mesos 的 CMake 构建配置选项全解析Apache Mesos 的 CMake 构建配置选项全解析 Apache Mesos 官方同时维护 Autotools 与 CMake 两套构建系统其中 C集群管理任务调度后端Apache Mesos 配置完全指南Master/Agent 运行时参数与 Autotools/CMake 构建选项Apache Mesos 配置完全指南Master/Agent 运行时参数与 Autotools/CMake 构建选项 本文以 Apache Mesos 官方集群管理任务调度后端上一篇终极护眼指南8款最佳iTerm2配色方案告别视觉疲劳下一篇SwiftUI交互设计深度解析打造专业级移动界面动画与手势交互创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考