Использование «R CMD pgfSweave» на Mac приводит к ошибке Rcmd - PullRequest
1 голос
/ 18 января 2012

У меня проблемы с запуском pgfSweave из командной строки. В руководстве по pgfSweave говорится, что пакет должен быть установлен из исходного кода, чтобы его можно было запускать как:

R CMD pgfSweave myfile.Rnw

Итак, я установил с помощью:

install.packages("pgfSweave", type = "source")

и пакет появился для установки без заминки. Затем я попытался запустить вышеупомянутый CMD R (непосредственно из оболочки bash, а также из файла make) и получил следующую ошибку:

/Library/Frameworks/R.framework/Resources/bin/Rcmd: line 61: exec: pgfSweave: not found

Я прочитал руководства, но не встречал никого, кто упоминал бы эту проблему. Я использую R версии 2.14.0, OSX 10.5.8 и pgfSweave версии 1.2.1

(Кстати, я должен отметить, что могу без проблем использовать следующую команду изнутри R:

pgfSweave(file = "myfile.Rnw", compile.tex = FALSE)

но я хотел бы использовать make-файл и делать все из командной строки)

1 Ответ

2 голосов
/ 18 января 2012

В руководстве pgfSweave приведено хорошее руководство по настройке и запуску интерфейса командной строки.Вот ключевой бит со страницы 13 руководства ( предупреждение: pdf ):

В версиях 0.7.0 pgfSweave получил интерфейс командной строки R CMD.В Unix-системах (включая Mac OS X) символическая ссылка $ R HOME / bin / pgfsweave на $ R HOME / library / pgfSweave / exec / pgfsweave-script.R.В Windows вместо этого делается копия скрипта.Этот скрипт устанавливается, только если pgfSweave установлен из исходного кода.

Итак, для Mac OS вам просто нужно поместить символическую ссылку с именем pgfsweave в $R_HOME/bin/, указывающую на $R_HOME/library/pgfSweave/exec/pgfsweave-script.R,($R_HOME - это путь к каталогу, полученный путем ввода R.home() в командной строке R.)


На случай, если вам понадобится больше подробностей о том, как это должно быть реализовано во время установки пакетаВзгляните на сценарий install-script.R в $R_HOME/library/pgfSweave/exec/.Он включает в себя отдельные ветви, которые будут выполняться в зависимости от типа операционной системы, и завершается этим обнадеживающим сообщением (которое будет напечатано в случае сбоя установки символической ссылки):

cat('\n***********************\n')
cat('Failed to install custom pgfsweave script:\n')
cat('  Thats ok! You can manually install it later.\n')
cat('***********************\n\n')
...