Книга: Программирование на языке Ruby
21.1. Система RubyGems
21.1. Система RubyGems
RubyGems — это не «официальная» система управления пакетами для Ruby, но одна из тех, что пользуются обширной поддержкой со стороны сообщества. В июле 2006 года она еще не входила в стандартный дистрибутив, но может стать его частью в будущем. Мы довольно подробно рассматривали процедуру создания gem- пакета в главе 17. А в этой главе расскажем, как пользоваться пакетами, созданными другими людьми.
RubyGems пытается решить несколько основных проблем, как то: простота установки, центральный репозиторий, управление версиями библиотек, управление зависимостями и т.д. Gem-пакеты предоставляют доступ к документации и позволяют легко контролировать, какие библиотеки установлены.
Если система RubyGems на вашем компьютере не установлена, зайдите на страницу http://rubyforge.org/projects/rubygems и выполните простые инструкции по загрузке и установке. В дальнейшем RubyGems будет обновляться автоматически.
Сам исполняемый файл называется gem
. Структура команд похожа на применяемую в cvs
и других аналогичных системах, то есть у каждой команды есть подкоманды, а у каждой подкоманды — специфичные для нее параметры. Ниже приведена информация о порядке запуска[18]:
RubyGems - развитый менеджер пакетов для Ruby. Ниже приведена
краткая справка с указанием на источники дополнительной информации.
Порядок запуска:
gem -h/--help
gem -v/--version
gem command [аргументы...] [флаги...]
Примеры:
gem install rake
gem list —local
gem build package.gemspec
gem help install
Более подробные справки:
gem help commands показать все команды 'gem'
gem help examples показать примеры использования
gem help COMMAND вывести справку о команде COMMAND
(например, 'gem help install')
Дополнительная информация:
http://rubygems.ruby forge.org
Самые важные команды не вызывают затруднений. Например, чтобы установить библиотеку feedtools
, нужно выполнить команду:
gem install feedtools
Сначала она будет искать gem-пакет локально, а если не найдет, то обратится к серверу Ruby Forge. По умолчанию устанавливается последняя версия (хотя в некоторых случаях вам задают вопрос, какой именно пакет вы хотите установить). Можно и явно указать версию с помощью флага -v
или --version
. Есть еще несколько флагов, управляющих установкой; подробную информацию дает команда gem help install
.
Иногда gem-пакет зависит от других пакетов. В таком случае вас спросят, надо ли их устанавливать. Понятно, что, отказавшись от требуемых пакетов, вы не сможете установить и тот, что хотели изначально.
Как узнать имя нужного вам пакета? Если он находится на сайте RubyForge, то обычно называется так же, как проект. Например, программа rake
находится на странице http://rubyforge.org/projects/rake или просто http://rake.rubyforge.org. поэтому для установки нужно выполнить команду gem install rake
.
Если вы не располагаете даже такой информацией, попробуйте воспользоваться командой gem search
. Если указать часть предполагаемого имени gem-пакета, то будут найдены все пакеты с похожими именами. По умолчанию поиск производится на локальном компьютере; чтобы искать в центральном репозитории, задайте флаг --remote
. Например, команда gem search xml --remote
нашла 12 пакетов.
Чтобы получить информацию об установленном пакете, введите команду gem specification
— она напечатает все содержащиеся в пакете метаданные (в основном содержимое самого файла gemspec
). Флаг --remot
e существует, но пока не реализован.
Кроме того, имеется команда деинсталляции uninstall
, а также команды query
и list
, отчасти перекрывающие друг друга и команду search
. Есть и еще много команд (дополнительную информацию вы найдете во встроенной справке или в онлайновой документации).
Полезно установить gem-сервер и на своей системе — не в качестве репозитория, из которого другие смогут дистанционно устанавливать пакеты, а как централизованный механизм, позволяющий просматривать в браузере все локально установленные пакеты вместе с документацией.
Для запуска gem-сервера просто наберите команду gem_server
(обычно сервер работает в фоновом режиме). Указав в адресной строке браузера URL localhost:8808
, вы увидите страницу «RubyGems Documentation Index», где в алфавитном порядке перечислены все установленные gem-пакеты со ссылками на документацию в формате rdoc
и на домашнюю страницу проекта в Web.
О системе RubyGems можно еще многое сказать; к тому же она постоянно развивается. Самая актуальная информация представлена на сайте http://rubygems.rubyforge.org.
- 17.2.2. Система RubyGems
- Система безопасности InterBase
- Что делать, если при установке принтера появляется сообщение Невозможно завершение операции. Подсистема печати недоступн...
- 7 Система Цикл: долгосрочные цели
- 3. Система конкурентных продаж (продажи по методу КЛИН)
- 3.4 Сетевая файловая система
- 3.7 Система Microsoft Exchange 2000 и NAS
- 6.5 Файловая система NTFS
- 1.3.1. Индексирование сайта в поисковых системах
- 6.6.2.1. Файловая система FAT 16
- 6.6.2. Файловая система FAT
- 4 Файловая система Linux