RubyGems
Стабильная версия | 3.5.10 [1]
/ 3 мая 2024 г |
---|---|
Репозиторий | |
Написано в | Руби |
Операционная система | Кросс-платформенный |
Тип | Менеджер пакетов |
Лицензия | Рубиновая лицензия |
Веб-сайт | рубиновые драгоценные камни |
Всего драгоценных камней | 173,000+ |
---|---|
Всего загрузок | 109+ миллиардов |
RubyGems — это менеджер пакетов для языка программирования Ruby , который предоставляет стандартный формат для распространения программ и библиотек Ruby (в автономном формате, называемом «gem»), инструмент, предназначенный для простого управления установкой драгоценных камней, и сервер для распределяя их. Он был создан Чадом Фаулером , Джимом Вейричем , Дэвидом Аланом Блэком , Полом Брэннаном и Ричардом Килмером во время RubyConf 2004. [2]
Интерфейс RubyGems представляет собой инструмент командной строки под названием gem , который позволяет устанавливать библиотеки (gems) и управлять ими. [3] времени выполнения Ruby, RubyGems интегрируется с загрузчиком помогая находить и загружать установленные драгоценные камни из папок стандартизированной библиотеки. Хотя можно использовать частный репозиторий RubyGems , для управления драгоценными камнями чаще всего используется общедоступный репозиторий.
Публичный репозиторий помогает пользователям находить драгоценные камни, разрешать зависимости и устанавливать их. RubyGems входит в стандартный пакет Ruby начиная с Ruby 1.9. [4]
История [ править ]
Разработка RubyGems началась в ноябре 2003 года и была представлена публике 14 марта 2004 года, или в День Пи 2004 года. [5] В 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. [6] Эти проблемы совместимости привели к быстрой разработке RubyGems с переходом на график выпуска 4–6 недель. Об этом свидетельствует наличие 38 выпусков с 2004 по 2010 год и 117 выпусков с 2011 по 2016 год. В 2013 году было выпущено 45 версий, что является самым высоким количеством выпусков за год для RubyGems. [5]
Строение драгоценного камня [ править ]
Каждый драгоценный камень содержит имя, версию и платформу. Gems работают только на Ruby, разработанном для конкретной платформы в зависимости от архитектуры ЦП , типа и версии операционной системы. [7]
Каждый драгоценный камень состоит из:
- Код
- Документация
- Спецификация драгоценного камня (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) содержит информацию об авторе драгоценного камня, времени создания и цели, которой служит драгоценный камень.
Проблемы безопасности [ править ]
Поскольку драгоценные камни запускают в приложении собственный код, это может привести к различным проблемам безопасности из-за установки вредоносных драгоценных камней. Создатель вредоносного драгоценного камня может скомпрометировать систему или сервер пользователя. [8]
Для противодействия угрозе безопасности разработан ряд методов:
- Криптографическая подпись драгоценных камней, начиная с версии RubyGems 0.8.11. Для этой цели используются команды gem cert и gem install.
- Были предложены новые модели подписи, такие как X509 и OpenPGP, которые активно обсуждаются экспертами Ruby.
См. также [ править ]
Ссылки [ править ]
- ^ «Выпуск 3.5.10» . 3 мая 2024 г. Проверено 25 мая 2024 г.
- ^ «174 Rubygems с Эриком Ходелом» . Архивировано из оригинала 31 июля 2021 г. Проверено 9 мая 2018 г.
- ^ «Справочник по командам RubyGems» . guides.rubygems.org . Проверено 18 сентября 2016 г.
- ^ «Журнал изменений Ruby 1.9.1» . Архивировано из оригинала 17 января 2022 г.
- ^ Jump up to: Перейти обратно: а б «История версий RubyGems» . Гитхаб . Проверено 18 сентября 2016 г.
- ^ «Выпущен Ruby 1.9.1» . www.ruby-lang.org . Проверено 18 сентября 2016 г.
- ^ «Что такое драгоценный камень? — RubyGems.org» . guides.rubygems.org . Проверено 18 сентября 2016 г.
- ^ «Безопасность — Руководства по RubyGems» . guides.rubygems.org . Проверено 23 сентября 2016 г.