macOS Catalina 中的 R 和 shell

macOS Catalina 中的 R 和 shell

我刚刚在工作场所买了一台装有 macOS Catalina 的新 M1 Mac,在从命令行运行 R 时遇到了问题(实际上是从 Makefile 运行)。我对 shell 还比较陌生,所以可能我遗漏了一些东西。

我想使用 Makefile 运行 R 项目。我使用下载的软件包安装了 R 3.6,虽然我R在终端中输入时它确实运行,但当我编写调用的 Makefile 时它却不运行R CMD BATCH scr.R

我唯一知道的是它似乎使用了不同的 shell。虽然终端使用 zsh(echo ${SHELL}给出/bin/zsh),但当我通过 Makefile 运行它时,它使用/bin/sh指向 bash: sh --version> 的GNU bash, version 3.2.57(1)-release ...

我尝试使用 homebrew 安装 R,并且确实有效,但这不是我的理想解决方案,因为 a) 我想要 R 3.6,而在 homebrew 中获取以前的版本有点令人头疼,并且 b) 我不想安装两次软件包。

我也尝试过改变/bin/sh符号链接使其指向/bin/zsh,但是也不起作用。

即使我SHELL := zsh在 Makefile 的开头添加,仍然会收到类似的错误:zsh:1: command not found: R.

所以我的问题是:这里到底发生了什么?为什么使用终端时得到的输出与通过 Make 调用命令时得到的输出不同?我该如何解决这个问题?

谢谢。

PS 我忘了提一下。由于我为 添加了别名,因此 CRAN 的“常规” R 安装在终端上有效.zshrc。但使用 Make 运行的 shell 似乎无法读取此配置文件。

答案1

仅供参考,我通过将 R 家庭住址(输入 找到)添加到 PATH 中解决了R.home()这个R问题。这应该有效:

sudo echo "/Library/Frameworks/R.framework/Resources" >> /etc/paths

相关内容