Установка и администрирование R Это руководство по установке и администрированию R. Текущая версия этого документа 2.6.1 (2007-11-26). ISBN 3-900051-09-7 1. Способы загрузки R Исходные коды, скомпилированные файлы и документация по R можно получить через сообщество CRAN “Comprehensive R Archive Network”, текущий список участников которого опубликован на cran.r-project.org/mirrors.html. 1.1 Получение и распаковка исходиков Простейший способ - это скачать последнюю версию файла R-x.y.z.tar.gz и распаковать tar xvfz R-x.y.z.tar.gz в системе на которой установлена GNU tar. В других системах по крайней мере должна быть установлена программа gzip. В таком случае вы можете использовать gzip -dc R-x.y.z.tar.gz | tar xvf - Путь к директории, в которую распаковываются исходники, не должен содержать пробелов, поскольку make (характерно для GNU make 3.80) не поддерживает пробелы. Если требуется записать исходники на флоппи-диски, Вы можете скачать файлы R-x.y.z.tar.gz-split.* и объединить их командой (для UNIX) cat R-x.y.z-split.* > R-x.y.z.tar.gz и выполнить описанные выше действия. Если Вы хотите, чтобы собранные файлы были доступны группе пользователей, установите umask перед распаковкой так, чтобы эти файлы были доступны для чтения целевой группе (т.е. umask 022 для того, чтобы были доступны всем пользователям). (Сохраняйте эти настройки umask во время сборки и установки) 1.2 Получение исправлений (патчей) и разрабатываемых версий Исправленная версия текущего релиза, `r-патч', и текущая разрабатываемая версия, 'r-devel', доступны как ежедневные tar-сборки, так и через хранилище R Subversion (R Subversion repository). (За две недели до релиза минорной (2.x.0) версии, 'r-патч' будет относиться к кандидату бета/релизу разврабатываемого релиза, исправленная версия текущего релиза доступна только через Subversion). Tar-сборки доступны на ftp://ftp.stat.math.ethz.ch/pub/Software/R/. Загрузите либо R-patched.tar.gz, либо R-devel.tar.gz (или версии .tar.bz2) и распакуйте как описано в предыдущем разделе. Они расположены точно там же, где находятся релизы R. 1.2.1 Использование Subversion и rsync Исходники также доступны через https://svn.R-project.org/R/, хранилище R Subversion. Если у Вас есть клиент Subversion (см. subversion.tigris.org), то Вы можете контролировать и обновлять текущую разработку из https://svn.r-project.org/R/trunk/ и текущий патч из 'https://svn.r-project.org/R/branches/R-x-y-branch/' (где x и y - мажорный и минорный номера текущей версии релиза R). Например, можно использовать svn checkout https://svn.r-project.org/R/trunk/ path для контроля разработки в директории path. Альфа, бета and RC версии предстоящего x.y.0 релиза доступны из `https://svn.r-project.org/R/branches/R-x-y-branch/' в четырехнедельный период до выхода релиза. Заметим, что требуется `https:' и это означает, что требуется сертификат SSL для сервера Subversion проекта R Информация сертификата: - Hostname: svn.r-project.org - Valid: from Jul 16 08:10:01 2004 GMT until Jul 14 08:10:01 2014 GMT - Issuer: Department of Mathematics, ETH Zurich, Zurich, Switzerland, CH - Fingerprint: c9:5d:eb:f9:f2:56:d1:04:ba:44:61:f8:64:6b:d9:33:3f:93:6e:ad (важно, что здесь не имеется в виду "доверенный сертификат” (“trusted certificate”) ). Вы можете принять этот сертификат перманентно и Вас больше не будут спрашивать о сертификате. Заметим, что восстановление исходников, например, командой wget -r или svn export из этого URL-адреса не будет работать: требуется информация о Subversion для сборки R. Хранилище Subversion не содержит текущих исходников для рекомендованных пакетов, которые могли быть получены командой rsync или загружены из CRAN. Для использования команды rsync необходимо установить предполагаемые исходники рекомендованных пакетов запустите ./tools/rsync-recommended из верхнего уровня исходников R. Если загружаете файлы вручную из CRAN, то убедитесь, что Вы имеете правильные версии рекомендованных пакетов: если номер в файле VERSION `x.y.z', то Вам необходимо загрузить содержание `http://CRAN.R-project.org/src/contrib/dir', где dir - это `x.y.z/Recommended' для разработки или x.y-patched/Recommended для r-патча, соответственно, в директорию src/library/Recommended куда были распакованы исходники. После ручной загрузки Вам необходимо запустить tools/link-recommended из верхнего уровня исходников для создания необходимых реквизитов в src/library/Recommended. Соответсвующие действия из верхнего уровня исходников R с использованием команды wget должны быть: wget -r -l1 --no-parent -A\*.gz -nd -P src/library/Recommended \ http://CRAN.R-project.org/src/contrib/dir ./tools/link-recommended 2 Установка R в Unix-подобных системах R будем настраивать и собирать в некоторых обычных Unix и Unix-подобными платформах, включая `cpu-*-linux-gnu' для `alpha', `arm', `hppa', `ix86', `ia64', `m68k', `mips', `mipsel', `powerpc', `s390', `sparc' и `x86_64' процессоров, `powerpc-apple-darwin', `i386-apple-darwin' и `sparc-sun-solaris', а также, вероятно (на этих платформах тестирование проводилось реже) `i386-*-freebsd', `x86_64-*-freebsd', `i386-*-netbsd', `i386-*-openbsd', `i386-sun-solaris', `mips-sgi-irix' и `alpha-dec-osf*'. Кроме того, бинарные дистрибутивы имеются в некоторых распространенных Linux дистрибутивах и в Mac OS X. Смотрите FAQ по текущей информации. Они установлены в определенных системой путях, поэтому в остальной части этой главы мы рассматриваем только сборки из исходников. 2.1 Простая компиляция Первоначально посмотрите важные и полезные инструменты и библиотеки в Essential and useful other programs under Unix и установите те из них, в которых есть необходимость. Убедитесь, что переменная окружения TMPDIR либо отключена (и /tmp существует и доступна для записи в нее и исполнения), либо указывает на правильную вре'менную директорию. Выберите место для установки каталога R (R tree) (R - это не только исполняемые файлы, но и дополнительные наборы данных, файлы помощи, метрики шрифтов и т.д.). Договоримся называть это место R_HOME. Распакуйте исходные коды. В результате должны быть созданы директории src, doc и некоторые другие. (Здесь североамериканские читатели должны принять во внимание Setting paper size.) Выполните следующие команды: ./configure make (См. Using make, если make не вызывается командой `make'.) Затем проверьте правильность работы системы сборки командой make check Ошибки не обязательно вызовут проблемы, поскольку они могут быть вызванны отсутствующей функциональностью, но Вам необходимо тщательно изучить любые сообщения о несоответствиях. (Заметим, что тесты могут успешно запуститься не во всех локалях(locales): мы предполагаем, что это решается использованием 8-битных или UTF-8 наборов символов, но, вероятно, не используя другие многобайтные наборы символов. Если у Вас есть проблемы, попробуйте C или Английскую локаль - UTF-8, если Вы обычно используете UTF-8.) Для перезапуска тестирования, включающего тест успешно запущенных, Вам необходимо выполнить make check FORCE=FORCE Более комплексное тестирование может быть выполнено с помощью make check-devel или make check-all см. tests/README. Если команды configure и make выполняются успешно, тогда исполняемые файлы R будут скопированы в R_HOME/bin/exec/R. Кроме того, скрипты (shell-scripts) front-end-файлов под названием R будут созданы и скопированны в ту же самую директорию. Вы можете скопировать этот скрипт в то место, откуда пользователи смогут вызывать его, например, в /usr/local/bin/R. Вы можете также скопировать man page R.1 в то место, откуда Ваши man читатели найдут ее (страницу), например, в /usr/local/man/man1. Если Вы хотите установить полностью каталог R, например, в /usr/local/lib/R, посмотрите Installation. Примечание: Вам нет необходимости устанавливать (программу) R: Вы можете запустить ее оттуда, где она была собранна. Вам не обязательно собирать R на верхнем уровне директории источника (скажем, в TOP_SRCDIR). Для сборки в BUILDDIR, запустите cd BUILDDIR TOP_SRCDIR/configure make и далее, как описано ниже. Это преимущество способствует постоянному поддержанию вашего каталога исходников в “чистоте” и особенно рекомендуется при работе с версией R из Subversion. (Возможно, чтобы это сделать Вам потребуется GNU make и путь в директории для сборки не должен содержать пробелов.) Командой Make будут созданы простые текстовые страницы помощи, такие как HTML и LaTeX версии объектов R документации (три вида документации могут быть получены отдельно, используя make help, make html и make latex). Заметьте, что Вам необходим Perl версии 5.8.x: если его нет в Вашей системе, то Вы можете получить PDF версии документации через CRAN. Для получения R через Subversion, необходим еще один шаг: make vignettes чтобы сделать сетку vignettes (которые содержатся в архивах): это займет несколько минут. Теперь выполните rehash если необходимо, типа R, и читайте руководство по R и FAQ по R (файлы FAQ или doc/manual/R-FAQ.html, или CRAN.R-project.org/doc/FAQ/R-FAQ.html, в которых всегда содержится последняя версия). 2.2 Создание руководств Ряд руководств могут быть построены из источников, `refman' Печатные версии всех страниц помощи. `R-FAQ' Ответы на часто задаваемые вопросы по R `R-intro' “Введение в R”. `R-data' “Импорт/экспорт данных в R”. `R-admin' “Установка и администрирование R”, это руководство. `R-exts' “Написание расширений R”. `R-lang' “Определение языка R”. Для их создания, используйте make dvi для создания DVI версий make pdf для создания PDF версий make info для создания информационных файлов (не `refman'). Вы не сможете построить эти руководства, если у Вас не установлен makeinfo версии 4.7 или более поздняя, а для создания DVI или PDF Вам потребуется установить texi2dvi и texinfo.tex (которые входят в состав дистрибутивов GNU texinfo, но часто, особенно texinfo.tex, входят в состав пакета TeX последующих дистрибутивов). DVI версии можно просмотреть и распечатать такими програмами как xdvi и dvips. PDF версии можно просмотреть с помощью Acrobat Reader или (последних версий) xpdf и ghostscript: они имеют гиперссылки, по которым в первых двух программах можно перемещаться. Информационные файлы доступны для интерактивного чтения с помощью Emacs или стандартной GNU Info. DVI and PDF версии будут созданы с использованием размеров страниц, выбранными в конфигурации (по умолчанию ISO a4): они могут быть отменены установкой R_PAPERSIZE в командной строке make, или установлены R_PAPERSIZE в окружении с помощью make -e. (Если новые руководства отличаются размерами страниц, тогда необходимо сначала удалить doc/manual/version.texi.) Существуют некоторые проблемы с созданием справочных руководств, в часности, с PDF версией refman.pdf. Файлы помощи содержат как символы ISO Latin1 (например, в text.Rd), так и вертикальные кавычки, которые не содержатся в стандартных современных компьютерных шрифтах LaTeX. Мы представили четыре альтернативы: times (По умолчанию для PDF.) Использование стандартных PostScript шрифтов. Они хорошо выглядят, как на экране монитора, так и при печати. Недостаток заключается в том, что разделы Usage and Examples могут получаться довольно широкими. lm Использование шрифтов Latin Modern. Они не часто устанавливаются вместе с дистрибутивами TeX, но их можно получить из www.ctan.org/tex-archive/fonts/ps-type1/lm и зеркал. Использование этих шрифтов предпочтительнее по сравнению с подобными Computer Modern, но они не очень хорошо выглядят на экране по сравнению с times. cm-super Использование type-1 версий шрифтов Computer Modern Владимира Воловича (Vladimir Volovich). Это большой установычный пакет, доступный из www.ctan.org/tex-archive/fonts/ps-type1/cm-super и его зеркал. Шрифты type-1 обладают плохой прорисовкой и на экране даже близко не так читабельны, как три другие варанта. ae (По умолчанию для DVI.) Пакет для использования составных Computer Modern шрифтов. Они хорошо работают в большинстве случаев, эти PDF-файлы более читабельны на экране, чем предыдущие два варианта. Есть три шрифта, с которыми необходимо использовать растровые шрифты, tctt0900.600pk, tctt1000.600pk и tcrm1000.600pk. К сожалению, если эти файлы не доступны, тогда Acrobat Reader будет заменять совершенно не правильно печатаемыми изображениемя символами шрифтов, поэтому нужно тщательно проверять лог-файлы. Принятые по умолчанию значения могут быть отменены установкой переменных окружения R_RD4PDF and R_RD4DVI. (В Unix, эти значения получаются во время установки.) Значения по умолчанию для R_RD4PDF - times,hyper: если Вам не нужны гиперссылки, например, для печати, то следует пропустить hyper. Значение по умолчанию для R_RD4DVI - ae. 2.3 Установка Для того, чтобы установленное дерево каталогов был доступным для требуемой группы пользователей, правильно установите umask (возможно `022') перед распаковкой исходников и во время процесса сборки. После ./configure make make check (или при сборке исходников, TOP_SRCDIR/configure, и т.п.) успешного выполнения, Вы можете полностью установить каталог R в вашей системе набрав make install Они будут установлены в следующие папки: prefix/bin или bindir скрипты front-end-файлов prefix/man/man1 или mandir/man1 the man page prefix/LIBnn/R или libdir/R все остальное (библиотеки, интерактивные системы помощи, ...). Здесь LIBnn обычно `lib', но может быть `lib64' на некоторых 64-битных Linux-системах. Этот путь известен как основная директория R. где prefix определяется в ходе конфигурации (обычно /usr/local) и может быть установлен запуском configure с опцией --prefix, как в ./configure --prefix=/where/you/want/R/to/go Это позволит make install устанавливать исполняемые файлы R в /where/you/want/R/to/go/bin, и далее. Префикс установленных директорий можно будет увидеть в сообщении в конце configure. Вы можете установить в другое дерево каталогов воспользовавшись make prefix=/path/to/here install по крайней мере с GNU make (но, например, не с make операционной системы Solaris 8). Во время конфигурации возможна более тонкая настройка через опции: подробности см. configure --help. (Однако, многие из них в настоящее время не поддерживаются.) Поддерживаются опции конфигурации --bindir и --mandir, они регулируют, куда копировать скрипт R и устанавливать страницу man. Опция конфигурации --libdir управляет, куда будут установлены основные R файлы: по умолчанию в `eprefix/LIBnn', где eprefix это путь используемый для установки файлов, в зависимости от системы, по умолчанию в prefix, и могут быть установлены через опции конфигурации --exec-prefix. Каждая из опций bindir, mandir и libdir может быть определена в командной строке make install (по крайней мере в GNU make). В configure или make переменные rdocdir и rsharedir могут быть использованы для установки системно-независимых директорий doc и share куда-либо помимо libdir. Заголовочные файлы C могут быть установлены в rincludedir: заметьте, что поскольку заголовки не установлены в поддиректории, Вам, вероятно, потребуется приблизительно следующее rincludedir=/usr/local/include/R-2.6.1. Если Вы хотите, чтобы основной каталог R отличался от libdir/R, используйте rhome: например make install rhome=/usr/local/lib64/R-2.6.0 позволит использовать основную директорию в зависимости от версии R на 64-битных Linux системах. Если Вы сделали R как общую /динамическую библиотеку, то можно установить ее в директорию вашей системной библиотеки с помощью make prefix=/path/to/here install-libR где prefix - необязательна, а libdir(? так в оригинале, возможно libR ?) позволит более точно настроить. make install-strip установит исполняемые разделы и, на платформах, где это поддерживается, разделы библиотек в директории lib и modules и в стандартные пакеты. Для установки DVI, info и PDF версий руководств, воспользуйтесь одной или несколькими из команд make install-dvi make install-info make install-pdf Еще раз, необязательно указывать prefix, libdir или rhome (руководства в формате DVI и PDF будут установлены в основную директорию R). Возможна более тонкая настройка. Для получения информация об используемых настройках существует команда infodir (по умолчанию 'prefix/info', установите с помощью конфигурационных опций --infodir). Файлы DVI и PDF установлены в каталог R doc, которые установлены в команде make переменной rdocdir. Возможна поэтапная установка, для этого устанавливаем R во временную директорию для того, чтобы переместить установленный каталог в конечное место назначение. В этом случае prefix (и др.) должны отражать конечное место назначения, а также следует использовать DESTDIR: см. http://www.gnu.org/prep/standards/html_node/DESTDIR.html 2.4 Деинсталяция Вы можете удалить R с помощью make uninstall указав prefix и т.д. в том же порядке, в каком были казаны при установке. Эта команда также удалит все установленные руководства. Имеются определенные задания для удаления DVI, info и PDF руководств в doc/manual/Makefile. 2.5 Подархитектуры Некоторые платформы могут поддерживать тесно связанные (закрытые?) сборки R, которые могут распространятся всем, но только в виде исполняемых и динамических объектов. Примеры - сборки под Solaris для различных чипов (в частности, 32- и 64-битные сборки), 64- и 32-битные сборки под `x86_64' Linux и различные процессоры (`ppc', `ppc64', `i386' и `x86_64') под Mac OS >= 10.4. R поддерживает идею сборок под конкретную архитектуру, указывая дополнительно `r_arch=name' к строке configure. Здесь name может быть что угодно, не пустое, и используется для названия поддиректорий lib, etc, include и libs. Пример наименований других систем - использование sparcv9 на Sparc Solaris и 32 компилятора gcc на Linux `x86_64'. Если у Вас есть два и более таких сборок, то Вы можете установить каждую из них (и для 32/64-битных сборок на одинаковой архитектуре, одна из них может быть установлена без `r_arch'). Экономия дискового постранства может быть значительной: на `x86_64' Linux базовая установка (без отладочных символов) занимает 63Mb, и дополнительно 32-bit сборка добавляет 6Mb. Если Вы установили несколько сборок, то вы можете выбрать сборку, которую будете запускать, набрав R --arch=name и запустив `R' будет выполняться последняя установленнная сборка build. R CMD INSTALL будет определять установлена ли более, чем одна сборка, и для каждой сборки пытаться установить пакеты с соответствующими библиотеками объектов. Если пакеты имеют исполняемый скрипт configure или файл src/Makefile, то Этого сделано не будет. В таких случаях, Вы можете установить к дополнительным сборкам R --arch=name CMD INSTALL --libs-only pkg(s) Если Вы хотите совместить подархитектуры, скомпилированые на различных платформах (например, на `x86_64' Linux и `i686' Linux), разумно использовать отдельные названия для каждой из них, и Вам, возможно, потребуется исправить libdir, чтобы гарантировать их устанавку в то же самое место.