www.rubygems.org – основной сайт с гемами
Ubuntu/Centos/Gentoo
Установка ruby/gems:
sudo apt-get/yum/emerge install ruby sudo apt-get/yum/emerge install rubygems
Гемы обычно ставятся через утилиту gem – она заведует поиском/установкой/удалениями гемов и имеет другие полезные команды. Краткий ман. Утилита поддерживает мультиверсионность гемов – если последняя вышедшая версия используемого вами gem не совместима с той, которую вы используете сейчас, то можно использовать обе версии одновременно. Так же установить gem можно указав URL (часто в репозитории гемы не актуальны), но для этого нужно сначала скачать gem specific_install.
sudo gem install snmp/net-ping/builder/spreadsheet/mechanize # установка самой последней версии (RubyGems по умолчанию выберет последнюю) sudo gem install builder -v 1.1.0 # установка конкретной версии gem environment – куча инфы (версия руби и гемов, где лежит руби и гемы и прочее) sudo gem install specific_install # устанавливаем gem для возможности прямой установки по URL sudo gem specific_install https://github.com/telegram-bot-rb/telegram-bot.git # устанавливаем gem telegram_bot
Так же для установки могут использоваться собранные пакеты с гемами в стандартных репозиториях ОС. Способ хуже. Пригодно для установки только для популярных гемов, например в Gentoo такие гемы ставятся через emerge (-vp проверяем отсутствие конфликтов с опцией pretend, -v – устанавливаем). Точные названия можно посмотреть на gentoo.org
sudo emerge -vp dev-ruby/mechanize
sudo emerge -vp dev-ruby/ruby-oci8
sudo emerge -vp phantomjs
После установки gem, достаточно написать команду require<имя gem>, чтобы подключить его. Т.е. работа с гемами не отличается от работы с обычными библиотеками.
require 'net/ping'
Если после этого пишет “no such file to load — <gem_name>”, а gem при этом установлен локально – может помочь строчка require ‘rubygems’.
/home/redkin_p/bin/test.rb:6:in `require': no such file to load -- snmp (LoadError) from /home/redkin_p/bin/test.rb:6
Другие команды
gem list |snmp/builder| # список гемов
gem list --remote # показывает все хдоступые гемах в репозитории, а не локально (как без опции)
gem list --remote --name-matches net-ping # ищем конкретный гем
sudo gem uninstall net-ping # удаление GEM
sudo gem cleanup rjb # удаление старых версий
sudo gem uninstall telegram-bot-ruby --version 0.8.6.1 # удаление определенной версии
gem environment # тут можно посмотреть много разной инфы. К примеру очень полезен путь до гемов, исполняемый ruby
Пример разбора ошибок установки gem из-за системных библиотек и других зависимых gem есть в статье про mechanize.
Если Ruby установлен через RVM:
rvm 2.4.0 # переходим в RVM gem install unicode # ставим gem