Acabo de adquirir una nueva Mac M1 con macOS Catalina en mi lugar de trabajo y tengo problemas al ejecutar R desde la línea de comandos (en realidad, cuando lo ejecuto desde un Makefile). Soy relativamente nuevo en el shell, por lo que probablemente me falta algo aquí.
Quiero ejecutar proyectos de R usando un Makefile. Instalé R 3.6 usando un paquete descargado y, si bien se ejecuta cuando escribo R
en la Terminal, no lo hace cuando escribo un Makefile que llama R CMD BATCH scr.R
.
Lo único que sé es que parece estar usando shells diferentes. Si bien la terminal usa zsh ( echo ${SHELL}
da /bin/zsh
), cuando lo ejecuto a través de un Makefile, usa /bin/sh
, que apunta a bash: sh --version
> GNU bash, version 3.2.57(1)-release ...
.
Intenté instalar R con homebrew y funcionó, pero no es mi solución ideal porque a) quiero R 3.6 y obtener versiones anteriores en homebrew es un dolor de cabeza, yb) no quiero instalar los paquetes dos veces .
También intenté cambiar el /bin/sh
enlace simbólico para que apunte a /bin/zsh
, pero tampoco funcionó.
Incluso si agrego SHELL := zsh
al principio el Makefile, sigo recibiendo un error similar:zsh:1: command not found: R.
Entonces mi pregunta es: ¿qué está pasando exactamente aquí? ¿Por qué obtengo un resultado diferente cuando uso la Terminal que cuando invoco los comandos a través de Make? ¿Y cómo puedo solucionar esto?
Gracias.
PD: Olvidé mencionarlo. La instalación "normal" de R desde CRAN funciona en la Terminal porque agregué un alias a .zshrc
. Pero el shell que se ejecuta con Make no parece leer este archivo de configuración.
Respuesta1
Solo para su información, lo resolví agregando la dirección de casa R (encuéntrela escribiendo R.home()
) R
a la RUTA. Esto debería funcionar:
sudo echo "/Library/Frameworks/R.framework/Resources" >> /etc/paths