macOS Catalina 中的 R 和 shell

macOS Catalina 中的 R 和 shell

我剛剛在工作場所購買了一台裝有 macOS Catalina 的新 M1 mac,從命令列運行 R 時(實際上是從 Makefile 運行 R 時)遇到了麻煩。我對 shell 比較陌生,所以這裡可能缺少一些東西。

我想使用 Makefile 運行 R 專案。我使用下載的軟體包安裝了 R 3.6,雖然當我R在終端中鍵入時它確實運行,但當我編寫調用R CMD BATCH scr.R.

我唯一知道的是它似乎使用了不同的外殼。雖然終端使用 zsh (echo ${SHELL}給出/bin/zsh),但當我透過 Makefile 運行它時,它使用/bin/sh,它指向 bash: sh --version> GNU bash, version 3.2.57(1)-release ...

我嘗試用​​自製軟體安裝 R,它確實有效,但這不是我理想的解決方案,因為 a) 我想要 R 3.6 並且在自製軟體中獲取以前的版本有點頭痛,b) 我不想安裝兩次軟體包。

我還嘗試更改/bin/sh符號鏈接,使其指向/bin/zsh,但它也不起作用。

即使我SHELL := zsh在 Makefile 的開頭添加,我仍然會收到類似的錯誤:zsh:1: command not found: R.

所以我的問題是:這裡到底發生了什麼事?為什麼使用終端機時得到的輸出與透過 Make 呼叫指令時得到的輸出不同?我該如何解決這個問題?

謝謝。

PS我忘了提。 CRAN 的“正常”R 安裝可以在終端上運行,因為我向.zshrc.但是使用 Make 運行的 shell 似乎無法讀取此設定檔。

答案1

僅供參考,我透過將 R 主位址(找到它輸入)新增R.home()RPATH 來解決。這應該有效:

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

相關內容