Реестр пакетов CRAN


Для работы с реестром пакетов CRAN, необходимо получить транспортный токен Gitflic. С инструкцией по получению токена можно ознакомиться на странице.

В документации ниже встречается атрибут {домен gitflic} На его место необходимо указать домен, в зависимости от версии:

  • для SaaS версии registry.gitflic.ru

  • для self-hosted localhost:8080

Домен и порт для self-hosted версии может отличаться.

CRAN пакеты могут содержать файлы двух типов - исходные (пакеты с расширением .tar.gz) и бинарные (пакеты с расширением .tgz или zip). Публикация и загрузка пакетов зависит от типа файлов.


Публикация пакета

Для публикации пакетов с исходными файлами необходимо отправить запрос через команду строку.

Для публикации на уровне проекта:

curl --upload-file {path/to/package}/{filename}.{extension} https://{username}:{транспортный токен}@{домен gitflic}/project/{ownerAlias}/{projectAlias}/package/-/cran/src/{filename}.{extension}

Для публикации на уровне компании:

curl --upload-file {path/to/package}/{filename}.{extension} https://{username}:{транспортный токен}@{домен gitflic}/company/{companyAlias}/package/-/cran/src/{filename}.{extension}

Для публикации пакетов с бинарными файлами необходимо отправить запрос через команду строку.

Для публикации на уровне проекта:

curl --upload-file {path/to/package}/{filename}.{extension} https://{username}:{transport_token}@{домен gitflic}/project/{ownerAlias}/{projectAlias}/package/-/cran/bin/{filename}.{extension}?platform={platform}&rversion={languageVersion}

Для публикации на уровне компании:

curl --upload-file {path/to/package}/{filename}.{extension} https://{username}:{transport_token}@{домен gitflic}/company/{companyAlias}/package/-/cran/bin/{filename}.{extension}?platform={platform}&rversion={languageVersion}

На некоторых операционных системах может возникнуть ошибка при публикации пакета. Для решения проблемы необходимо взять URL в двойные кавычки "{URL}"

Переменная в URL Описание
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании
path/to/package/filename.extension Путь к файлу пакета с его расширением. .tar.gz для исходных, .tgz или zip для бинарных файлов
username Имя пользователя
транспортный токен Транспортный токен пользователя
filename Имя пакета с расширением
platform Платформа, для которой создан пакет. Может принимать следующие значения: macosx, windows
languageVersion Версия языка программирования R

Параметр platform не принимает значение linux так как официальный сайт не предоставляет пакеты для UNIX систем.

Если все выполнено верно, то должно появится сообщение об успешной публикации пакета Success


Загрузка пакета

Подготовка

Все команды для загрузки пакетов выполняются через R консоль. Способ подключения к данной консоли различается в зависимости от используемой операционной системы:

macOS и Windows

Установить язык программирования R с официального сайта для вашей операционной системы.

Linux (Ubuntu/Debian)

Установить язык программирования R с помощью команд:

sudo apt update
sudo apt install r-base

Для подключения к R консоли необходимо воспользоваться командой: sudo -i R

Linux (Red Hat/Fedora)

Установить язык программирования R с помощью команд:

sudo dnf install epel-release
sudo dnf install R

Для подключения к R консоли необходимо воспользоваться командой: sudo -i R

Загрузка пакета целиком

Для загрузки пакета необходимо выполнить команду через R консоль:

Загрузка для уровня проекта

install.packages('{packageName}', repos='https://{username}:{транспортный токен}@{домен gitflic}/project/{ownerAlias}/{projectAlias}/package/-/cran')

Загрузка для уровня компании

install.packages('{packageName}', repos='https://{username}:{транспортный токен}@{домен gitflic}/company/{companyAlias}/package/-/cran')

Загрузка для всего сервиса

install.packages('{packageName}', repos='https://{username}:{транспортный токен}@{домен gitflic}/registry/package/-/cran')
Переменная в URL Описание
packageName Название пакета. Указывается без расширения
username Имя пользователя
транспортный токен Транспортный токен пользователя
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании

Загрузка отдельного файла

Для загрузки отдельных файлов необходимо выполнить команду через R консоль:

Загрузка для уровня проекта

Исходные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/project/{ownerAlias}/{projectAlias}/package/-/cran/src/contrib/{filename}', repo=NULL, type="source")

Бинарные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/project/{ownerAlias}/{projectAlias}/package/-/cran/bin/{platform}/{architecture}/contrib/{rversion}/{fileName}', repo=NULL, type="source")

Загрузка для уровня компании

Исходные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/company/{companyAlias}/package/-/cran/src/contrib/{fileName}', repo=NULL, type="source")

Бинарные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/company/{companyAlias}/package/-/cran/bin/{platform}/{architecture}/contrib/{rversion}/{fileName}', repo=NULL, type="source")

Загрузка для всего сервиса

Исходные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/registry/package/-/cran/src/contrib/{fileName}', repo=NULL, type="source")

Бинарные файлы

install.packages('https://{username}:{транспортный токен}@{домен gitflic}/registry/package/-/cran/bin/{platform}/{architecture}/contrib/{rversion}/{fileName}', repo=NULL, type="source")
Переменная в URL Описание
username Имя пользователя
транспортный токен Транспортный токен пользователя
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании
fileName Имя пакета с расширением
platform Платформа, для которой создан пакет. Может принимать следующие значения: macosx, windows
architecture Архитектура платформы
rversion Версия языка программирования R