Bioconductor 3.23 已于 2026 年 4 月 29 日发布,官方确认支持 R 4.6 系列与 macOS arm64。因此,新项目应使用原生 arm64 的 R 4.6 系列,优先采用 R 4.6.1,再通过 BiocManager 指定 Bioconductor 3.23,并在独立环境中完成代表性包与真实分析流程验收。旧论文项目不要直接原地升级,而应冻结旧环境,再建立新旧双轨回归。(Bioconductor 3.23 发布公告)
如果你没有 Mac,可以先使用远程 Apple Silicon Mac 验证依赖、包来源和复现结果,再决定是否长期购买或租用设备。这样比先迁移整套课题环境,再发现某个关键包依赖 Intel 工具链更稳妥。
这篇指南适合三类人:准备在 Apple Silicon Mac 上新建 Bioconductor 环境的研究生;需要维护旧论文与历史分析流程的科研人员;实验室没有 Mac、但需要为课题组交付 macOS 生信环境的技术支持人员。
最后更新于 2026 年 9 月 20 日,版本与系统信息核实自 Bioconductor 3.23 发布页、安装文档、版本公告表,以及 R for macOS 官方下载页。
01 安装路线:先区分新建、冻结与双轨
Bioconductor 3.23 与 R 4.6 对应。官方版本表显示,3.23 的发布日期是 2026 年 4 月 29 日,对应 R 4.6;同一版本包含 2418 个软件包、437 个实验数据包和 928 个注释包。这些数字说明它是一个完整发行版,不适合用几个零散的 install.packages() 命令拼出来。
对于新课题,默认组合是 R 4.6.1 arm64 + Bioconductor 3.23。R for macOS 页面显示,R 4.6.1 于 2026 年 6 月 24 日发布,并提供适用于 Apple Silicon 的安装包。(R for macOS 官方下载页)
| 你的项目状态 | 默认路线 | 环境动作 | 通过标准 |
|---|---|---|---|
| 新课题、尚未产出正式结果 | 原生新建 | R 4.6.1 arm64 + Bioconductor 3.23 | 核心包可加载,真实流程可运行 |
| 正在投稿或需要复现历史结果 | 冻结旧环境 | 保留旧 R 与旧 Bioconductor | 旧结果能按原脚本重现 |
| 旧环境需要迁移到 Apple Silicon | 双轨回归 | 新旧环境并存,逐步比较 | 差异可解释,不能只看脚本是否跑完 |
| 实验室没有 Mac | 远程先验收 | 使用远程 Apple Silicon Mac 部署副本 | 依赖、数据读写、结果导出均通过 |
✅ 新项目不要安装 R-devel 或 Bioconductor 3.24 开发版作为正式课题环境。Bioconductor 官方安装页明确区分 release 与 devel,开发版适合测试和贡献者,不适合作为普通项目的默认环境。(Bioconductor 官方安装文档)
✅ 旧论文项目不要把所有包直接升级到 3.23。Bioconductor 官方图书说明,不同发行版的包不保证数据结构、函数参数和行为兼容;历史结果复现应优先保留旧版本。(Bioconductor 官方图书安装章节)
安装前检查清单
在下载安装包以前,先记录:
- ☐ 项目是新建、迁移,还是历史结果复现。
- ☐ 当前 Mac 是否为 Apple Silicon。
- ☐ macOS 版本是否满足当前 R arm64 安装包的要求。
- ☐ 旧项目是否已经保存
sessionInfo()、包清单和关键脚本。 - ☐ 课题是否必须使用 macOS,还是重计算部分仍应放在 Linux HPC。
- ☐ 真实数据是否可以制作脱敏副本。
Bioconductor 3.23 的官方公告确认支持 macOS arm64,但这不等于每一个科研包都有可直接使用的 arm64 二进制包。某些包仍可能需要 C、C++、Fortran 或外部系统库,最终状态要看该包页面的构建信息和 SystemRequirements。
02 第一小时:建立 macOS arm64 基线
处理器与 R 架构
在终端执行:
uname -m
Apple Silicon 原生终端通常应返回:
arm64
然后在 R 中检查:
R.version$version.string
R.version$arch
R.version$platform
.Platform$pkgType
.libPaths()
你需要重点确认 4 件事:
- R 版本属于 4.6 系列。
- R 架构显示为
aarch64或arm64相关平台。 - R 不是通过 Rosetta 启动的 Intel 版本。
- 用户库路径没有混入过去 x86_64 R 安装的包。
R for macOS 官方说明,R 4.6 系列的 Apple Silicon 构建面向 macOS 14 Sonoma 及更高版本,使用 sonoma-arm64 构建;Intel 版和 arm64 版的工具与库目录也分开维护。(R for macOS 构建与下载信息)
架构混用通常从哪里开始?
最常见的原因不是 Bioconductor 本身,而是启动链混用了架构。例如,RStudio 或终端被设置为通过 Rosetta 打开,过去的包安装在旧用户目录,或者 /usr/local 中仍有 Intel 版库。R 官方文档确认,Apple Silicon 可以通过 Rosetta 运行 x86_64 软件,但这会形成另一条架构路径;新项目应尽量保持 R、编译器、外部库和 R 包使用同一架构。(R Installation and Administration 官方文档)
记录仓库与编译工具
在 R 中保存基线:
sessionInfo()
getOption("repos")
capabilities()
如果计划安装带源码组件的科研包,还要检查:
xcode-select -p
clang --version
不要因为某个包出现编译日志,就立即删除整个 R 环境。先保存完整安装输出,确认它缺少的是编译器、头文件、动态库,还是包本身暂时没有 arm64 构建。
R for macOS 页面还说明,R 4.6.1 arm64 构建使用 Xcode 26 工具链;需要编译 Fortran 代码的 R 包时,可能还需要对应的 GNU Fortran 工具。(R for macOS 官方工具链说明)
如果使用远程 Mac,第一小时还应完成以下验收:
- ☐ SSH 能登录,且登录后架构仍显示为
arm64。 - ☐ 能上传一个小型脱敏数据集。
- ☐ 能创建项目目录和用户级 R 包库。
- ☐ VNC 或网页控制台断开后,终端任务不会被误判为已完成。
- ☐ 你知道结果文件保存在哪里,以及如何下载并校验。
03 Bioconductor 3.23:完成最小安装闭环
安装 Bioconductor 时,不要把普通的 install.packages() 当成版本管理工具。Bioconductor 官方推荐先安装 BiocManager,再通过 BiocManager::install(version = "3.23") 选择发行版。(Bioconductor 官方安装方法)
在全新的 R 会话中执行:
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install(version = "3.23")
BiocManager::version()
预期结果应为:
[1] ‘3.23’
然后只安装项目需要的代表性包。例如,单细胞项目可以先选择项目清单中的核心包,而不是一次性安装整个生态:
BiocManager::install(c(
"SingleCellExperiment",
"GenomicRanges",
"BiocGenerics"
))
实际包名应以你的分析流程为准。单细胞、转录组、基因组注释和空间数据项目的依赖并不相同,不要因为某篇教程列出一组包,就把它们全部复制到正式环境。
包来源与发行版一致性
检查包是否混入其他 Bioconductor 发行版,可使用:
BiocManager::valid()
这个命令会识别过旧包和过新包。官方文档将它作为检查混合发行版的重要工具,因为通过其他仓库、源码或旧用户库安装的包,可能会绕过当前 Bioconductor 版本的约束。(BiocManager 官方安装与验证说明)
最小通过标准不是“控制台没有报错”,而是:
BiocManager::version()返回3.23。- 代表性包可以用
library()正常加载。 BiocManager::valid()没有需要立即处理的过旧或过新包。sessionInfo()显示的 R、平台和包版本已保存。- 仓库地址没有混入开发版或旧发行版。
如果 valid() 报告问题,先不要执行全量升级。先把问题包分成三类:
- 当前项目真正需要的核心包。
- 旧环境残留、但本次流程不需要的包。
- 依赖外部程序或源码编译的包。
优先修复第一类。第二类可以留在旧环境。第三类必须查看包页面的系统依赖说明。
04 源码包:判断依赖,不要盲目重装
Apple Silicon 下出现源码编译日志,并不自动表示安装失败。原因可能是当前包没有对应平台的二进制文件,也可能是 R 版本、仓库配置或外部依赖没有匹配。
看到类似下面的日志时:
* installing *source* package ...
先判断它属于哪种情况:
- 包本身没有当前平台二进制文件:需要源码编译。
- 包有二进制文件,但当前 R 或仓库配置不匹配:先检查版本与仓库。
- 包依赖 C、C++、Fortran 外部库:需要补工具链、头文件或库路径。
- 用户库残留 Intel 包:应在隔离库中重新安装,而不是继续混用。
Bioconductor 官方 FAQ 说明,部分包由于依赖额外软件,可能并不适用于所有操作系统;包的 SystemRequirements 也只能说明外部依赖,不能保证该依赖已经存在于你的 Mac 中。(Bioconductor 官方 FAQ)
每次修复都在项目专用库中进行。不要为了一个非核心包修改全局编译参数,也不要直接删除系统级 R 目录。R 官方将 arm64 的工具和库放在独立目录,以避免与 Intel 生态混用;这也是你排查路径时应遵循的边界。
系统依赖排查步骤
- 打开该包在 Bioconductor 的正式页面。
- 查看
SystemRequirements。 - 检查包的构建状态和安装说明。
- 确认缺少的是命令、头文件还是动态库。
- 只在隔离环境中补依赖。
- 重新安装该包并保存日志。
- 如果包不是核心流程所需,设置停止条件,不继续扩大修改范围。
一个稳妥的停止条件是:如果某个包只用于可选绘图或辅助功能,而核心数据读取、对象构建和统计流程已经通过,就先保留问题记录,把它从第一版交付中移出。科研环境的目标是可复现,不是让每个曾经安装过的包都保持最新。
05 真实项目:用结果验证环境
安装完成后,选一条真实但可控的分析路径。不要只运行包自带示例,因为示例通常无法覆盖你的输入格式、注释版本、对象规模和输出要求。
建议准备一个最小复现项目:
project/
├── data/
│ └── deidentified_input/
├── scripts/
│ ├── 01_import.R
│ ├── 02_build_object.R
│ └── 03_export_result.R
├── logs/
├── results/
└── sessionInfo.txt
按顺序验证:
- 读取一份脱敏数据。
- 构建课题使用的核心对象。
- 执行一段代表性计算。
- 生成一张关键图或一个统计结果。
- 导出结果文件。
- 保存
sessionInfo()与安装日志。 - 与旧环境的关键结果进行差异检查。
差异检查不能只比较文件是否生成。至少要记录对象维度、样本数量、特征数量、过滤阈值、主要统计量和结果文件校验值。如果新旧结果不同,要判断是包版本变化、随机数种子、底层数学库,还是输入数据处理顺序发生了变化。
旧项目迁移边界
把旧项目迁移到 Bioconductor 3.23 前,先确认旧结果是否已经有可复现基线。技术上可以尝试升级,但不应把整套旧环境一次性替换掉。
更安全的做法是:
- 先复制旧项目和旧包清单。
- 在旧环境中重新跑出基准结果。
- 新建 R 4.6.1 与 Bioconductor 3.23 环境。
- 只迁移项目真正需要的包。
- 用同一份脱敏输入比较结果。
- 对差异进行人工解释。
- 只有当新结果可解释,才考虑替换旧环境。
如果旧项目没有完整版本记录,先不要急着升级。先保存当前 sessionInfo()、installed.packages() 输出和关键脚本。记录不完整时,双轨运行通常比一次性迁移更省时间。
06 第一周交付:把环境变成可复用资产
环境交付不应止于“R 能打开”。课题组至少需要拿到以下内容:
- R 与 Bioconductor 版本。
- Mac 架构与 macOS 版本。
- 包清单和仓库来源。
- 代表性包的安装日志。
- 核心脚本与运行顺序。
- 脱敏测试数据说明。
- 结果文件位置和命名规则。
- 断线后如何恢复任务。
- 远程文件如何下载并校验。
- 环境如何清理,哪些目录不能删除。
如果长任务通过 SSH 运行,使用 tmux 或其他会话管理方式,避免网络断开直接终止任务。远程桌面适合打开 RStudio、查看图形和做交互式排查,但不能把“桌面没有报错”当成主机端任务已经完成。
如果实验室缺少 Mac,可以先在 CALMVPS 的远程 Mac 方案中申请短周期环境,使用自己的包清单和脱敏数据做验收。需要比较按周、按月或更长周期时,再查看Mac 远程租赁价格,不要在没有完成真实流程验证前直接锁定长期设备。
远程环境交付清单
- ☐ SSH、VNC 或网页控制台至少有一种方式可用。
- ☐ 断线后任务状态可以确认。
- ☐ 文件上传和下载路径已记录。
- ☐ 结果文件可通过校验值确认完整。
- ☐ R 与 Bioconductor 版本记录已导出。
- ☐
BiocManager::valid()检查已完成。 - ☐ 代表性包和真实分析流程均已运行。
- ☐ 退出时只清理临时文件,不误删项目库。
- ☐ 课题组其他成员可以按文档复现一次。
07 Mac 与 Linux HPC:按任务拆分
Apple Silicon Mac 适合验证 macOS 专属工具、交互式分析、图形输出、包兼容性和跨平台交付。Linux HPC 更适合已有队列系统、共享存储和长时间高并行计算的课题。
你可以按下面的边界拆分:
- macOS:安装验证、交互式调试、图形检查、macOS 兼容性测试。
- Linux HPC:大规模比对、长时间批处理、共享数据分析和集群调度。
- 双轨:相同输入、相同脚本、不同平台输出,比较关键结果。
- 远程 Mac:短期验证、论文复现、课题组环境交付和跨平台测试。
如果你的核心任务长期依赖 HPC 队列、GPU 或实验室物理接口,Mac 不应被当成 Linux 集群的直接替代品。它更适合作为 macOS 验证节点和科研软件兼容性补充。
完成核心包与一条真实分析流程的最小验收后,也不要为了短期验证立即购买设备。自购 Mac 的缺点是一次性投入、硬件闲置风险和后续维护责任;现有 Windows/Linux 环境则无法直接证明 macOS arm64 的包依赖和界面行为。对没有 Mac 的实验室,先租用一台远程 Apple Silicon Mac,用自己的包清单和脱敏数据确认能否复现,再决定继续租用、采购设备,或保留 macOS 与 Linux 双轨方案,通常更符合科研项目的实际节奏。需要继续核对连接、文件交付和环境清理要求时,可参考CALMVPS 远程 Mac 使用入口。