SuperAPI AI 工具集

debug-r-env

编程与开发

查看项目

更新于 10-16 09:05

技能介绍

用途

debug-r-env 是一个专门用于排查和修复 R 环境问题的子技能,主要解决导致脚本无法正常运行的常见 R 环境故障。它会分析 R 安装、包依赖和系统配置,帮助用户定位并修复缺失包、版本冲突和配置问题。

主要能力

当被调用时,该子技能会执行以下工作:

  • 分析 R 环境:检查 R 版本与平台、列出已安装包及其版本、检查库路径、验证包依赖。
  • 识别缺失包:扫描脚本中的 library() 和 require() 调用,检查 Bioconductor 包,检测 GitHub 包依赖,识别版本不匹配。
  • 诊断冲突:发现包遮蔽(masking)问题、检测不兼容版本、识别系统依赖、检查编译要求。
  • 提供解决方案:生成安装命令、建议版本更新、推荐初始化 renv、提供故障排查步骤。

使用方式

该子技能可通过参数进行配置:

  • script_path:要分析的 R 脚本路径,默认为当前目录。
  • required_packages:要验证的包列表,默认从脚本自动检测。
  • check_bioc:是否检查 Bioconductor 包,默认 true。
  • check_updates:是否检查可用更新,默认 false。
  • fix_issues:是否尝试安装缺失包,默认 false。

它会生成诊断报告,包含 R 版本、平台、库路径、已安装包、缺失包、安装命令和警告信息。安装命令按包来源区分:

CRAN 包: install.packages("package_name")

Bioconductor 包: if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("package_name")

GitHub 包: remotes::install_github("username/package")

或

devtools::install_github("username/package")

多个包: packages <- c("tidyverse", "ggplot2", "dplyr") install.packages(packages)

适用场景

当用户遇到以下情况时适合使用该子技能:

  • 检查所需包是否已安装
  • 解决包版本冲突
  • 修复“package not found”错误
  • 验证 R 版本兼容性
  • 调试库路径问题
  • 排查编译失败

示例用户请求包括:“我的 R 脚本提示 'package not found'”、“检查 RNA-seq 分析所需的所有包是否已安装”、“修复我的 R 环境——ggplot2 无法加载”、“为什么 DESeq2 报错?”、“调试我项目中的包依赖”、“为我的分析安装所有必需的包”。

常见问题与解决方案

  • “there is no package called”:包未安装,使用 install.packages("pkgname")。
  • Bioconductor 包未找到:Bioconductor 未配置,使用 BiocManager::install("pkgname")。
  • 包被另一个包遮蔽:命名空间冲突,显式使用 library(pkgname)。
  • 编译错误:缺少系统依赖,安装系统构建工具。
  • 版本不匹配:包需要更新的 R,更新 R 或使用旧版包。
  • renv 激活失败:锁文件损坏,删除并恢复 renv.lock。

限制与注意事项

  • 始终同时检查 CRAN 和 Bioconductor 来源。
  • 如果项目中存在 renv.lock,会遵循该文件。
  • 提供安全的安装命令(运行前需人工审查)。
  • 检测编译所需的系统依赖。
  • 检查包遮蔽冲突。

相关子技能:create-project(使用合适环境设置新项目)、run-analysis(在修复环境问题后执行脚本)。