R Markdown中Bash代码块无法运行:samtools库依赖问题求助
解决方案
1. 修复终端中samtools的libcrypto依赖问题
Ventura系统已移除旧版本的libcrypto.1.0.0.dylib,旧版samtools因此无法运行,优先采用以下方案:
- 重新安装适配Ventura的samtools
用Homebrew安装(未装Homebrew的话,先在终端执行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"完成安装):
安装后在终端运行brew install samtoolssamtools --version,能正常输出版本信息即说明依赖问题解决。 - (不推荐)若必须保留旧版samtools,可手动找到兼容的
libcrypto.1.0.0.dylib文件,执行sudo ln -s /path/to/libcrypto.1.0.0.dylib /usr/local/lib/创建软链接,但该方式易引发其他依赖冲突,谨慎使用。
2. 解决R Markdown中samtools命令未找到的问题
R Markdown的bash代码块环境变量与终端默认环境可能不一致,可尝试以下方法:
- 指定samtools完整路径
在终端执行which samtools获取路径(例如/usr/local/bin/samtools),然后在R Markdown的bash代码块中用完整路径执行命令:/usr/local/bin/samtools view -Sb your_input.sam > your_output.bam - 在R Markdown中配置环境变量
在R代码块中将samtools所在目录加入PATH:
之后再运行bash代码块即可找到samtools。Sys.setenv(PATH = paste("/usr/local/bin", Sys.getenv("PATH"), sep = ":")) - 从终端启动RStudio
部分场景下RStudio不会继承终端的环境变量,关闭RStudio后,在终端执行open -a RStudio启动,RStudio会加载终端的PATH配置。
内容的提问来源于stack exchange,提问作者Roy Khair
相关产品推荐
相关产品推荐

