Ruby: установка gem в Ruby

www.rubygems.org – основной сайт с гемами

Ubuntu/Centos/Gentoo

Установка ruby/gems:

sudo apt-get/yum/emerge install ruby
sudo apt-get/yum/emerge install rubygems

Гемы обычно ставятся через утилиту gem – она заведует поиском/установкой/удалениями гемов и имеет другие полезные команды. Краткий ман. Утилита поддерживает мультиверсионность гемов – если последняя вышедшая версия используемого вами gem не совместима с той, которую вы используете сейчас, то можно использовать обе версии одновременно.

sudo gem install snmp/net-ping/builder/spreadsheet/mechanize - установка самой последней версии (RubyGems по умолчанию выберет последнюю)
sudo gem install builder -v 1.1.0 - установка конкретной версии
gem environment – куча инфы (версия руби и гемов, где лежит руби и гемы и прочее)
gem list |snmp/builder| – список гемов
gem list --remote - показывает все хдоступые гемах в репозитории, а не локально (как без опции)
gem list --remote --name-matches net-ping - ищем конкретный гем
sudo gem uninstall net-ping – удаление

Так же для установки могут использоваться собранные пакеты с гемами в стандартных репозиториях ОС. Способ хуже. Пригодно для установки только для популярных гемов, например в 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

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *