Стабильный выпуск | 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.
Разработка 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, разработанном для конкретной платформы, в зависимости от архитектуры процессора, типа и версии операционной системы.
Каждый камень состоит из:
Организация кода для драгоценного камня с именем gem_name соответствует следующей структуре:
gem_name/ ├── bin/ │ └── gem_name ├── lib/ │ └── gem_name.rb ├── test/ │ └── test_gem_name.rb ├── README ├── Rakefile └── gem_name.gemspec
Поскольку драгоценные камни ruby запускают собственный код в приложении, это может привести к различным проблемам с безопасностью из-за установки вредоносных драгоценных камней. Создатель вредоносных гемов может скомпрометировать пользовательскую систему или сервер.
Для противодействия угрозе безопасности разработан ряд методов: