Как мне указать версию 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
,