RubyGems

редактировать
RubyGems
Стабильный выпуск 3.2.20 / 11 июня 2021 г. ; 2 месяца назад ( 11 июня 2021 г.)
Репозиторий Отредактируйте это в Викиданных
Написано в Рубин
Операционная система Кроссплатформенность
Тип Менеджер пакетов
Лицензия Рубиновая лицензия
Интернет сайт rubygems.org
Всего драгоценных камней 133 000+
Всего скачиваний 14+ миллиардов

RubyGems - это менеджер пакетов для языка программирования Ruby, который предоставляет стандартный формат для распространения программ и библиотек Ruby (в автономном формате, называемом «жемчужиной»), инструмент, предназначенный для простого управления установкой гемов, и сервер для распространяя их. Он был создан Чадом Фаулером, Джимом Вейрихом, Дэвидом Аланом Блэком, Полом Браннаном и Ричардом Килмером во время RubyConf 2004.

Интерфейс для RubyGems представляет собой инструмент командной строки под названием gem, который может устанавливать библиотеки (гемы) и управлять ими. RubyGems интегрируется с загрузчиком времени выполнения Ruby, чтобы помочь найти и загрузить установленные драгоценные камни из стандартных библиотечных папок. Хотя можно использовать частный репозиторий RubyGems, публичный репозиторий чаще всего используется для управления гемами.

Публичный репозиторий помогает пользователям находить драгоценные камни, разрешать зависимости и устанавливать их. RubyGems входит в стандартный пакет Ruby начиная с Ruby 1.9.

СОДЕРЖАНИЕ
  • 1 История
  • 2 Структура драгоценного камня
  • 3 Проблемы безопасности
  • 4 См. Также
  • 5 ссылки
  • 6 Внешние ссылки
История

Разработка RubyGems началась в ноябре 2003 года и была выпущена для общественности 14 марта 2004 года, или в День Пи 2004 года. В 2010 году публичный репозиторий по умолчанию для драгоценных камней был перемещен с gems.rubyforge.org на rubygems.org, который все еще используется.. Кроме того, разработка RubyGems была перенесена на GitHub в 2010 году. Хотя RubyGems существует с Ruby 1.8, он не был частью стандартного дистрибутива Ruby до Ruby 1.9.

Раньше совместимость с RubyGems и Ruby была разной. Многие версии RubyGems почти полностью несовместимы со многими версиями Ruby, а в некоторых версиях были недоступны ключевые функции. Например, Ruby 1.9 поставлялся с RubyGems 1.3.7 в своем стандартном дистрибутиве, но RubyGems 1.4.x не был совместим с Ruby 1.9. Это означало, что обновление RubyGems на Ruby 1.9 было невозможно до выпуска RubyGems 1.5.0 в 2011 году, через два года после первого стабильного выпуска Ruby 1.9. Эти проблемы совместимости привели к быстрой разработке RubyGems с переходом на 4–6-недельный график выпуска. Это отражено в 38 выпусках с 2004 по 2010 год и 117 выпусках с 2011 по 2016 годы. В 2013 году было выпущено 45 версий, что является самым большим количеством выпусков для RubyGems за год.

Структура драгоценного камня

Каждый драгоценный камень содержит название, версию и платформу. Драгоценные камни работают только на ruby, разработанном для конкретной платформы, в зависимости от архитектуры процессора, типа и версии операционной системы.

Каждый камень состоит из:

  1. Код
  2. Документация
  3. Спецификация драгоценных камней (Gemspec)

Организация кода для драгоценного камня с именем gem_name соответствует следующей структуре:

gem_name/ ├── bin/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── test/ │ └── test_gem_name.rb ├── README ├── Rakefile └── gem_name.gemspec
  • Каталог lib содержит код для драгоценного камня.
  • Каталог test (или spec) используется для тестирования.
  • Rakefile используется Rake для автоматизации тестов и генерации кода.
  • README включает документацию RDOC для большинства драгоценных камней.
  • Спецификация драгоценного камня (gemspec) содержит информацию об авторе драгоценного камня, времени создания и цели, которой служит драгоценный камень.
Проблемы безопасности

Поскольку драгоценные камни ruby ​​запускают собственный код в приложении, это может привести к различным проблемам с безопасностью из-за установки вредоносных драгоценных камней. Создатель вредоносных гемов может скомпрометировать пользовательскую систему или сервер.

Для противодействия угрозе безопасности разработан ряд методов:

  • Криптографическая подпись драгоценных камней, начиная с версии RubyGems 0.8.11. Для этого используются команды gem cert и gem install.
  • Были предложены новые модели подписи, такие как X509 и OpenPGP, которые активно обсуждаются экспертами по Ruby.
Смотрите также
использованная литература
внешние ссылки
Последняя правка сделана 2023-04-13 12:41:39
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте