Перейти к содержанию

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


Подготовка к работе

Для работы с пакетами Ruby требуется официальная утилита gem.

Проверить параметры окружения:

gem -v

В случае, если утилита не установлена, обратитесь к документации поставщика для установки на вашу ОС по ссылке.

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

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

  • для SaaS версии registry.gitflic.ru
  • для self-hosted localhost:8080

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

Настройка реестра RubyGems

Для публикации пакетов в реестр RubyGems необходимо создать или отредактировать файл конфигурации ~/.gem/credentials и добавить.

---
{url1 в зависимости от уровня репозитория}: {transport_token}
{url2 в зависимости от уровня репозитория}: {transport_token}

Обратите внимание

Может потребоваться дополнительное назначение прав для файла

chmod 0600 /Users/user/.gem/credentials

Уровень URL
Проект http(s)://{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/-/rubygem
Компания http(s)://{домен_gitflic}/company/{companyAlias}/package/-/rubygem
Инстанс http(s)://{домен_gitflic}/registry/package/-/rubygem
Переменная в URL Описание
ownerAlias Псевдоним владельца проекта
projectAlias Псевдоним проекта
companyAlias Псевдоним компании

Работа с реестром

Добавление источника для установки пакетов

Чтобы добавить реестр в качестве источника необходимо выполнить:

gem sources -a {url в зависимости от уровня репозитория}
Если для реестра выключен анонимный доступ, необходимо добавить данные для аутентификации.

Примеры:

  • Для реестра проекта

    gem sources -a --host http(s)://{username}:{transport_token}@{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/-/rubygem
    

  • Для реестра компании

    gem sources -a --host http(s)://{username}:{transport_token}@{домен_gitflic}/company/{companyAlias}/package/-/rubygem
    

  • Для реестра инстанса

    gem sources -a --host http(s)://{username}:{transport_token}@{домен_gitflic}/registry/package/-/rubygem
    

где {username} - имя пользователя, {transport_token} - транспортный токен

Проверьте выполнение команды

Проверить текущие параметры окружения можно командой gem env

Установка пакетов

Для установки пакета выполните команду:

gem install {gem_name}

Также можно указать дополнительный параметр с URL для установки:

gem install {gem_name} --source http(s)://{username}:{transport_token}@{домен_gitflic}/{путь_до_реестра}/package/-/rubygem

где {gem_name} - название пакета, {username} - имя пользователя, {transport_token} - транспортный токен

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

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

gem push {путь_до_gem} --host {url_реестра}
  • Для реестра проекта
    gem push {путь_до_gem} --host http(s)://{домен_gitflic}/project/{ownerAlias}/{projectAlias}/package/-/rubygem
    
  • Для реестра компании
    gem push {путь_до_gem} --host http(s)://{домен_gitflic}/company/{companyAlias}/package/-/rubygem
    
  • Для реестра инстанса
    gem push {путь_до_gem} --host http(s)://{домен_gitflic}/registry/package/-/rubygem
    

Для удаления пакета выполните

gem yank {gem_name} -v {version} --host {url_реестра}
Фактически yank не удаляет пакет из реестра, а только убирает его из индекса для поиска. Учитывайте это при работе с реестром. Физически удалить пакет из реестра можно через веб-интерфейс.

Работа с Bundler

Для работы с Bundler необходимо создать Gemfile и добавить в него следующую информацию:

  • Для добавления источника

    source "{url в зависимости от уровня репозитория}"
    

  • Добавления источника для конкретного гема

    source "{url в зависимости от уровня репозитория}" do
      gem "test_package"
    end
    

В случае если выключен анонимный доступ, указать credentials аналогично установке с помощью утилиты gem.

Работа с rbenv

Использование утилиты rbenv подразумевается, когда в системе предустановлен Ruby и возникают проблемы с его обновлением до актуальной версии.

Установка rbenv:

sudo apt install rbenv
brew install rbenv

Следующим шагом необходимо инициализировать утилиту:

rbenv init

Перезагрузите терминал или откройте новую сессию, чтобы изменения вступили в силу.

Далее требуется выполнить последовательность команд для установки необходимой версии Ruby:

# Просмотр доступных версий
rbenv versions

# Установка выбранной версии
rbenv install 3.4.5

# Указание установленной версии для работы
rbenv global 3.4.5
rbenv local 3.4.5

# Перезапись инструкций для Ruby
rbenv rehash

Дополнительно пропишите следующие инструкции в ~/.bash_profile при использовании bash или ~/.zshenv при использовании zsh

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"