Библиотеки
Как и в большинстве языков программирования, в Ruby можно использовать широкий набор сторонних библиотек.
Большая часть из них реализована в форме гема. RubyGems – менеджер пакетов Ruby, созданный для упрощения процесса создания, распространения и установки библиотек (в каком-то смысле это распределенный пакетный менеджер, похожий, скажем, на apt-get , но нацеленный на Ruby приложения). С версии Ruby 1.9 RubyGems используются по умолчанию, хотя для предыдущих версий его нужно было устанавливать вручную.
Некоторые другие библиотеки реализованы как архивы (.zip или .tar.gz) исходного кода. Процесс установки может различаться, обычно файл README или INSTALL содержит инструкции по установке.
Давайте взглянем на поиск библиотек и установку их для дальнейшего использования.
Поиск библиотек
Основное место, где хранятся библиотеки — RubyGems.org, предоставляет библиотеки Ruby в виде гемов. Вы можете поискать прямо на сайте или воспользоваться командой gem .
Используя команду gem search -r , вы можете проверить репозиторий RubyGems. Например, gem search -r rails вернет список относящихся к Rails библиотек. С опцией —local ( -l ) вы можете произвести локальный поиск среди установленных у вас гемов. Чтобы установить гем, используйте gem install [gem] . Просмотреть список установленных библиотек можно командой gem list . Для более подробной информации о команде gem смотрите ниже или почитайте документацию RubyGems.
Также есть и другие источники библиотек. RubyForge был популярным домом для библиотек Ruby, но в последний год возросла популярность GitHub, как одного из главных хранилищ исходного кода приложений околорубиевой тематики. Намного чаще сейчас исходный код гема размещен на GitHub и сам гем опубликован на RubyGems.org.
The Ruby Toolbox это проект, который позволяет легче исследовать проекты на Ruby с открытым исходным кодом. Там есть категории для различных проблем разработки, содержащие большое количество информации о проектах, вроде даты релиза и активности разработчиков, а также зависимости и рейтинг проекта, основанный на его популярности на RubyGems.org и GitHub.com. Поиск поможет быстрей найти то, что вы ищете.
Еще пару слов о RubyGems
Это был краткий обзор команды gem для вашего повседневного использования. Более подробная документация также доступна, она покрывает все аспекты данной пакетной системы.
Поиск среди доступных гемов
Команда search может быть использована для поиска гемов по названию. Гемы, название которых начинаются с заданной строки, будут отображены в результатах. Например, чтобы найти гемы, относящиеся к “html”:
$ gem search -r html *** REMOTE GEMS *** html-sample (1.0, 1.1)
Флаг —remote / -r показывает, что мы хотим проверить официальный RubyGems.org репозиторий (поведение по-умолчанию). С флагом —local / -l вы можете совершить локальный поиск среди установленных у вас гемов.
Установка гема
Когда вы знаете, какой гем вы желаете установить, например, популярные Rails:
$ gem install rails
Вы даже можете установить определенную версию библиотеки. Просто используйте флаг —version / -v :
$ gem install rails --version 5.0
Список всех гемов
Для просмотра всех локально установленных гемов:
$ gem list
Чтобы получить (очень длинный) список всех гемов, доступных на RubyGems.org:
$ gem list -r
Документация
Документация доступна в вашем терминале:
$ gem help
Например, gem help commands очень полезна, выводит список всех подкоманд команды gem .
Создание своего собственного гема
RubyGems.org содержит несколько инструкций по этой теме. Вы также можете посмотреть в сторону Bundler, полезный инструмент, который поможет вам управлять зависимостями приложений и может быть использован вместе с RubyGems.
Начните сейчас, это легко!
- Попробуйте Ruby! (в своем браузере)
- Ruby за двадцать минут
- В Ruby из других языков
Исследуйте новый мир…
- Документация
- Научные публикации
- Библиотеки
- Истории успеха
Вступайте в дружелюбное и развивающееся сообщество.
- Почтовые рассылки: Разговоры о Ruby в кругу программистов со всего мира.
- Группы пользователей: Познакомьтесь с рубистами рядом с вами.
- Блоги: Читайте о том, что происходит в сообществе Ruby прямо сейчас.
- Ядро Ruby: Помощь в полировке последней версии Ruby.
- Решение проблем: Сообщайте или помогайте решать проблемы в Ruby.
Установка Ruby on Rails на Ubuntu
В этой статье Вы узнаете, как установить язык программирования Ruby и один из наиболее популярных веб фреймворков Ruby on Rails в операционной системе Ubuntu. Мы будем использовать простой, но мощный инструмент командной строки rbenv. С его помощью мы без труда сможем установить несколько версий языка Ruby и также просто переключаться между ними. Весь процесс установки базируется на использовании командной строки. Поэтому открываем «Терминал» и начинаем!
Обновление системы и установка зависимостей
Первое, что необходимо сделать, обновить систему:
$ sudo apt-get update
Далее необходимо установить дополнительные пакеты, которые необходимы для корректной работы rbenv и Ruby:
$ sudo apt-get install autoconf bison build-essential libssl-dev \ libyaml-dev libreadline6-dev zlib1g-dev \ libncurses5-dev libffi-dev libgdbm3 libgdbm-dev git
Теперь, когда установлены все необходимые пакеты, приступим к установке rbenv.
Код проекта расположен на Github. Следующей командой, мы клонируем репозиторий в наш домашний каталог:
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
Теперь, когда мы скачали rbenv необходимо добавить в глобальную переменную $PATH путь к исполняемым файлам и добавить команду rbenv init для автоматического запуска rbenv:
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc $ source ~/.bashrc
Чтобы устанавливать Ruby командой ruby install необходимо установить ruby-build. Делается это очень просто, клонируем репозиторий в папку ~/.rbenv/plugins/
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Подошло время к установке Ruby. Полный список доступных версий Ruby можно посмотреть с помощью следующей команды:
$ rbenv install -l
Установим последнюю, доступную на данный момент версию 2.3.1, а также сделаем данную версию Ruby используемой по умолчанию с помощью команды global:
$ rbenv install 2.3.1 $ rbenv global 2.3.1
И проверим, что по умолчанию используется Ruby версии 2.3.1, с помощью команды:
$ ruby -v
Gems это пакеты, которые подключают дополнительный функционал к Ruby. Большинство гемов сопровождаются с подробной документацией. Для того чтобы отключить загрузку документации используем команду:
$ echo "gem: --no-document" > ~/.gemrc
Установим первый гем, который называется bundler. Он используется для управления зависимостями приложения:
$ gem install bundler
Для того чтобы установить Rails в командной строке необходимо выполнить следующую команду:
$ gem install rails $ rbenv rehash
Для работы Rails необходимо установить nodejs. Не будем вдаваться в подробности и последовательно выполним все команды, представленные ниже.
$ cd /tmp $ \curl -sSL https://deb.nodesource.com/setup_6.x -o nodejs.sh $ cat /tmp/nodejs.sh | sudo -E bash - $ sudo apt-get install -y nodejs
После того, как Вы прошли все шаги из этой инструкции, у Вас появится настроенное рабочее окружение, готовое для написания веб приложений с использованием популярного веб фреймворка Ruby on Rails.
Как создать своё веб приложение читайте в следующих статьях!
Установка RubyGems в домашний каталог (Ruby)
Для того, чтобы интерпретатор Ruby, вызванный из консоли, «видел» установленные локально gems, запустите команду:
gem environment
и посмотрите, какие пути он укажет после ключевого слова GEM PATHS Добавьте в файл .profile соответствующие строки, сообразуя их с увиденным. Например у нас это будет:
GEM_HOME=$HOME/.gem export GEM_HOME GEM_PATH=$HOME/.gem/ruby/1.8:/usr/local/lib/ruby/gems/1.8/ export GEM_PATH PATH=$PATH:$HOME/.gem/ruby/1.8/bin export PATH
Это следует сделать ДО установки модулей, во избежании накладок при установке. Не забудьте «перелогиниться» после добавления, чтобы настройки применились.
Установка с помощью gem
Установка с помощью gem очень простая. Достаточно набрать команду:
gem install имя_пакета
Установка уникальных библиотек, не входящих в gems
Допустим, есть набор файлов на языке Ruby, которые хотелось бы использовать в качестве библиотеки. Как заставить интерпретатор Ruby увидеть местонахождение этой библиотеки? Очень просто, следует добавить в файл .profile следующие строки:
RUBYLIB=путь_к_библиотеке export RUBYLIB
Использование в crontab
Для того, чтобы скрипты, запускающиеся по cron могли иметь доступ к локально установленным gems и/или библиотекам, в начале crontab-файла следует прописать нужные строки:
GEM_HOME=/home/ваш_логин/.gem GEM_PATH=/home/ваш_логин/.gem/ruby/1.8:/usr/local/lib/ruby/gems/1.8/ PATH=/bin:/usr/bin:/usr/local/bin:/home/ваш_логин/.gem/ruby/1.8/bin RUBYLIB=путь_к_библиотеке
Обращаем внимание, что переменные типа $PATH или $HOME не разбираются в crontab и требуется полностью прописывать все пути.
Ruby: установка и управление gem в Ruby
Гемы обычно ставятся через утилиту 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, чтобы подключить его. Т.е. работа с гемами не отличается от работы с обычными библиотеками.
require 'net/ping'
Если после этого пишет “no such file to load — ”, а 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
Posted on August 8, 2017 February 1, 2019 Author weril Categories Gem installation
Leave a Reply Cancel reply
You must be logged in to post a comment.
