如何用 Bazel 从源码构建 MongoDB 的 mongod 并验证二进制可运行

发布时间:2026/11/12 20:41:42

如何用 Bazel 从源码构建 MongoDB 的 mongod 并验证二进制可运行 如何用 Bazel 从源码构建 MongoDB 的 mongod 并验证二进制可运行【免费下载链接】mongoThe MongoDB Database项目地址: https://gitcode.com/GitHub_Trending/mo/mongo如果你的目标是把 MongoDB 源码编译出自己的mongod数据库服务器而不是下载预编译包并且要在构建结束后确认二进制确实能跑这篇文章给出的操作路径是安装项目提供的 Bazel 引导脚本、用bazel build构建install-mongod或install-dist-test目标最后用--version验证产物。适用环境为 docs/building.md 中列出的平台与编译器版本。构建前的硬性条件按 docs/building.md 的要求编译 MongoDB 源码需要满足以下条件支持 C20 的现代 C 编译器且必须是以下已验证版本之一GCC 14.2Clang 19.1Apple XCode 16.4Visual Studio 2022 version 17.0使用更新版本的编译器“可能可行”但文档明确说只有上述版本经过验证。Linux 和 macOS 上还需要 libcurl 库及头文件macOS 自带。按发行版安装Fedora/RHELdnf install libcurl-develUbuntu/Debianlibcurl-dev由三个包提供任选其一安装libcurl4-openssl-dev、libcurl4-nss-dev、libcurl4-gnutls-devUbuntu 另需 lzma 库liblzma-devAmazon Linux 另需xz-develyum install xz-develPython 3.13约 13 GB 空闲磁盘空间用于存放核心二进制mongod、mongos和mongo支持的架构为 arm64、ppc64le、s390x 和 x86-64。Debian/Ubuntu 上文档额外要求安装build-essential# apt-get install build-essential。Windows 和 macOS 的附加要求WindowsVisual Studio 2022 version 17.0 或更高版本、Python 3.13macOSXcode 16.4 或更高版本确认已安装 macOS 15.5 platform并通过 brew 安装brew install llvm19 lld19安装 Bazel运行项目提供的引导脚本MongoDB 仓库不要求你自行安装 Bazel而是提供 buildscripts/install_bazel.py 引导脚本。该脚本会下载 bazelisk 和 buildozer 到~/.local/bin目录不存在时会创建并在~/.local/bin中把bazel软链到下载的bazelisk。脚本会访问网络下载二进制、写入你的用户目录~/.local/bin这是它唯一修改环境的位置。脚本末尾还会检查bazel是否在 PATH 中若不在会提示你把~/.local/bin加入 PATH 的具体命令。在仓库根目录执行python buildscripts/install_bazel.py export PATH~/.local/bin:$PATH第二条命令是必需的脚本默认把二进制装到~/.local/bin只有该目录在 PATH 中后面的bazel命令才可用。构建 mongod 安装树文档给出的最短验证路径是构建install-dist-test后直接运行--versionLinux 的 Quick (re)Start 段落bazel build install-dist-test bazel-bin/install/bin/mongod --version如果你的目标只有mongod本身可以改用更小的install-mongod目标bazel build install-mongod两个目标的区别install-dist-test会额外打包测试用组件mongos、mongoshell 等产物是完整安装树install-mongod只安装mongod及其依赖见仓库根 BUILD.bazel 中的mongo_install(name mongod, ...)定义。文档还列出其他可组合目标供参考install-mongos、install-core仅mongod和mongos、install-dist全部服务端组件、install-devcore含jstestshell。文档提醒install-core与install-dist不保证一致install-core只含最小子集install-dist面向终端用户使用测试时应优先用install-devcore或install-dist。如果编译器的版本高于文档支持版本新版本可能引入新的告警而构建系统把告警当错误处理会导致构建失败。文档给出的解法是在 bazel 命令上加开关bazel build install-mongod --disable_warnings_as_errorsTrue如果确实要构建所有东西mongod、mongo、单元测试等命令是bazel build --build_tag_filtersmongo_binary //src/mongo/...这条命令范围远大于“构建并验证 mongod”只在需要完整构建时才使用。找到产物并验证可运行构建系统的产物位置见 docs/building.md 的 Where to find Binaries统一安装树bazel-bin/install各 install 目标自己的安装树bazel-bin/install-target因此构建install-dist-test后mongod位于bazel-bin/install/bin/mongod构建install-mongod后可在bazel-bin/install-mongod对应的安装树中找到该二进制验证方式就是文档给出的--version命令bazel-bin/install/bin/mongod --version能正常打印版本信息说明二进制可执行。文档没有给出--version的固定预期输出实际输出取决于你构建的源码版本不要以某段固定日志作为成功标准。如果后续要继续把单节点 mongod 跑起来仓库 README 给出的运行方式是$ mkdir -p /data/db $ ./mongod其中mkdir -p /data/db在原文中带了sudo数据目录默认路径为/data/db。这是验证完成后的下一步操作与本文的构建验证任务本身无关但文档明确给出了该入口。常见构建限制编译器必须使用已验证版本之一。用更高版本编译器时若因新告警导致构建失败按上文加--disable_warnings_as_errorsTrue。Linux/macOS 缺少 libcurl 头文件或 lzma/xz 库时构建会失败需先按发行版安装对应开发包。磁盘不足 13 GB 时不要开始构建文档给出的空间需求仅覆盖核心二进制。仓库同时提供docs/devcontainer/下的 devcontainer 说明和 bazel/docs/developer_workflow.mdBazel 构建定义开发流程前者是容器化开发环境入口后者面向修改BUILD.bazel的开发者不属于本文构建验证主路径仅在对应场景下参考。【免费下载链接】mongoThe MongoDB Database项目地址: https://gitcode.com/GitHub_Trending/mo/mongo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/13 12:59:26

电工证全世界通用吗保姆级教程:外省证怎么转过来

电工证全世界通用吗保姆级教程:外省证怎么转过来 之前考的证在外省能不能转过来?这个问题是很多南阳卧龙区房建工程从业者最关心的问题,特别是在现在全国范围内施工项目跨省接洽频繁的背景下。很多电工朋友在本地考完证后,去了别的省市工作,发现证不能用…

2026/11/13 12:59:26

嘉兴电工证补考要多久 良心建议实操考试心里没底怕挂科

嘉兴电工证补考要多久 良心建议实操考试心里没底怕挂科 实操考试心里没底怕挂科,这几乎是每个准备考电工证的学员的共同焦虑。特别是像嘉兴这样的城市,电工证不仅是上岗的“门槛证”,更关乎你的职业发展和薪资水平。今天就来聊聊 嘉兴电工证补考要多久…

2026/11/13 12:59:26

雄安新区电工作业现场值不值得考?外省证书怎么转

雄安新区电工作业现场值不值得考?外省证书怎么转 之前考的证在外省能不能转过来?这是很多想在雄安新区从事电工作业的小伙伴最关心的问题。特别是从河南等地转过来的电工,面对雄安新区快速发展的建设热潮,很多人都在问:…

2026/11/13 12:59:26

岳阳电工证在哪里年审怎么报名?转岗电工人的真实经历

岳阳电工证在哪里年审怎么报名?转岗电工人的真实经历 刚下工地就被叫停,手里的电工证到期了还没年审,我这心里直打鼓。眼下正是找工作最紧的时候,连个面试机会都没了。岳阳电工证在哪里年审?怎么报名?这俩问题像两块大石头压在我心头。…

2026/11/13 12:59:26

煤气作业证复审年限合格标准与通过率

没学历也能考煤气作业证?复审年限和含金量你必须知道 你是不是也担心自己学历不高,考不上煤气作业证?别急,这玩意儿对学历要求真没你想象的那么高。只要你是初中及以上学历,年满18岁,身体健康,都能报考。关键是你得明白, 煤气作业证的含金量…

2026/11/13 12:54:25

电工作业视频配音上岗必须要这个证吗 值不值得考

电工作业视频配音上岗必须要这个证吗 值不值得考 不知道去哪报名怕被中介坑,这几乎是每个想考电工作业操作证的人的第一反应。尤其在商丘劳务班组里,很多电工师傅都经历过被各种“培训中心”忽悠、交了钱还拿不到证的情况。电工作业视频配音虽然听起来和传…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/13 0:01:06

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了 你是不是也像我一样,第一次听说“高压电工证”这个名词,就感觉一头雾水?其实很多人都跟我一样,不知道去哪报名、怕被中介坑,结果花了冤枉钱还考不上。今天我就从一个在商丘培训过的学员角度,…

2026/11/13 0:01:06

黎里考电工证在哪里值不值得考

黎里考电工证在哪里值不值得考 之前考的证在外省能不能转过来?这是很多在外地工作、准备回老家发展的朋友最关心的问题。特别是在黎里地区,很多从事电力相关工作的朋友,都面临这样一个难题: 外省的电工证能否在本地使用?值不值得考?…

2026/11/13 0:01:06

毕节哪里考电工证 怎么报名学历不高也能上手

毕节哪里考电工证 怎么报名学历不高也能上手 你是不是也和我一样,学历不高,想着考个电工证,但又担心自己条件不够,怕报不上名?其实不然,只要符合条件,学历不高也能考电工证。今天就来聊聊【毕节哪里考电工证】这个问题,还有怎么报名,让你一步到位不…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑