Сборка пакетов-расширений для языка R

Материал из Rosalab Wiki
Версия от 08:33, 22 сентября 2018; D uragan (обсуждение | вклад)

Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

R — язык программирования для статистической обработки данных и работы с графикой. Среда, в которой производится обработка, также называется R. Для этой среды существует множество вспомогательных расширений, реализующих дополнительные функции. Каждое такое расширение, не входящее в базовую поставку R, оформляется в РОСЕ как отдельный пакет.

Пакеты создаются полуавтоматически скриптом R2spec, который необходимо запускать в установленной РОСЕ, имеющей доступ в интернет. Для получения скрипта необходимо установить пакет R2spec. Все последующие действия необходимо выполнять в консоли/терминале.

Пакет для расширения foo создается с помощью скрипта следующим образом:

$ R2spec -p foo

Скрипт ищет последнюю версию расширения foo в публичных репозиториях (в частности, в CRAN). В случае успеха архив с исходным кодом скачивается в директорию ~/rpmbuild/SOURCES, а также создается spec-файл ~/rpmbuild/SPECS/R-foo.spec с инструкциями для сборки rpm-пакета из этого кода. Этот файл надо передать утилите rpmbuild, чтобы она попробовала собрать пакет:

$ rpmbuild -bb ~/rpmbuild/SPECS/R-foo.spec

Если соберется сразу — отлично, можно делать src.rpm:

$ rpmbuild -bs ~/rpmbuild/SPECS/R-foo.spec

и затем делать из него проект на ABF в своем репозитории.

Но обычно пакет сразу не собирается, и приходится либо дорабатывать spec-файл, либо сначала собирать дополнительные пакеты (необходимые для сборки данного). Поэтому заранее сложно сказать, сколько в итоге пакетов придется обработать.

Для надежности, следует попробовать собрать пакет уже на ABF - это позволяет выявить ошибки, которые можно пропустить при локальной сборке. Для этого необходимо перейти на страничку вашего проекта, нажать "New Build" и в появившемся окне слева отметить галочками репозитории main и contrib для платформы rosa2016.1 (последней на момент написания этой странички, если есть платформа поновее типа rosa2019.1 - то надо выбирать ее).