Как мне указать версию R, открытую сессией ESS в emacs?

Когда я хочу открыть сессию R в Emacs, я использую M-x R,

Однако наш сервер имеет R 2.12 в / usr / bin / R и R 2.15 в / usr / local / bin / R. На самом деле, если я спрошу whereis RЯ получаю следующее:

$ whereis R
R: /usr/bin/R /usr/local/bin/R /usr/local/bin/R2.15 /usr/local/bin/R2.12 
/usr/local/bin/R2.7 /usr/include/R /usr/share/R /usr/share/man/man1/R.1.gz

Когда я пытаюсь экспортировать "R_HOME=/usr/local/bin/R2.15" из.bashrc, emacs говорит "ПРЕДУПРЕЖДЕНИЕ: игнорирование значения окружения R_HOME"

Есть ли способ выбрать, какой экземпляр R запускается? В настоящее время 2.15 запускается, когда я набираю R в командной строке, хотя M-x R запускает 2.12.

1 ответ

Решение

Ответ, не связанный с ESS, заключается в том, чтобы убедиться, что ваш PATH идентичен, а версия, которую вы хотите, идет первой. Кажется, есть разница между оболочкой, которую вы запускаете, и запуском с использованием Emacs. Вы можете запустить Emacs из вашей оболочки с его PATH.

Ответ ESS, вероятно, включает установку некоторой магической переменной... В Windows мы часто устанавливаем двоичный файл напрямую. Здесь код LISP говорит:

;; If you wish to call other versions of R on a Unix system, ESS
;; should auto-detect other versions of R, according to matches to the
;; variable `ess-r-versions' as described in its docstring.  Consider
;; changing that variable rather than changing inferior-R-program-name
;; if your version of R is not already auto-detected.
;;(setq-default inferior-R-program-name "R")        ; unix systems

так что должно просто работать. Я оставляю только R в моем PATH, и еще один, поэтому я не могу проверить это здесь для вас. Но попробуйте возиться с ess-r-version и / или inferior-R-program-name,

Другие вопросы по тегам