Jump to content

RubyGems

RubyGems
Стабильная версия
3.5.10 [1] / 3 мая 2024 г .; 42 дня назад ( 3 мая 2024 г. )
Репозиторий
Написано в Руби
Операционная система Кросс-платформенный
Тип Менеджер пакетов
Лицензия Рубиновая лицензия
Веб-сайт рубиновые драгоценные камни .org
Всего драгоценных камней 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]

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

  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) содержит информацию об авторе драгоценного камня, времени создания и цели, которой служит драгоценный камень.

Проблемы безопасности [ править ]

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

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

  • Криптографическая подпись драгоценных камней, начиная с версии RubyGems 0.8.11. Для этой цели используются команды gem cert и gem install.
  • Были предложены новые модели подписи, такие как X509 и OpenPGP, которые активно обсуждаются экспертами Ruby.

См. также [ править ]

Ссылки [ править ]

  1. ^ «Выпуск 3.5.10» . 3 мая 2024 г. Проверено 25 мая 2024 г.
  2. ^ «174 Rubygems с Эриком Ходелом» . Архивировано из оригинала 31 июля 2021 г. Проверено 9 мая 2018 г.
  3. ^ «Справочник по командам RubyGems» . guides.rubygems.org . Проверено 18 сентября 2016 г.
  4. ^ «Журнал изменений Ruby 1.9.1» . Архивировано из оригинала 17 января 2022 г.
  5. ^ Jump up to: Перейти обратно: а б «История версий RubyGems» . Гитхаб . Проверено 18 сентября 2016 г.
  6. ^ «Выпущен Ruby 1.9.1» . www.ruby-lang.org . Проверено 18 сентября 2016 г.
  7. ^ «Что такое драгоценный камень? — RubyGems.org» . guides.rubygems.org . Проверено 18 сентября 2016 г.
  8. ^ «Безопасность — Руководства по RubyGems» . guides.rubygems.org . Проверено 23 сентября 2016 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a6824014aa68456f407cae25f04adf89__1701184320
URL1:https://arc.ask3.ru/arc/aa/a6/89/a6824014aa68456f407cae25f04adf89.html
Заголовок, (Title) документа по адресу, URL1:
RubyGems - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)