Как установить gem на ruby скачанный
Перейти к содержимому

Как установить gem на ruby скачанный

  • автор:

Шаг 1. Настройка среды разработки для разработки на языке Ruby

Чтобы разработать приложение с помощью драйвера Ruby для SQL Server, необходимо настроить среду разработки, учитывая необходимые условия.

Драйвер Ruby использует протокол TDS, включенный по умолчанию в SQL Server и Базу данных SQL Azure. Дополнительная настройка не требуется.

Windows

  1. Скачайте установщик Ruby
    Если на вашем компьютере не установлен язык Ruby, установите его. Для новых пользователей Ruby рекомендуется использовать установщики Ruby 2.2.X, которые предоставляют стабильный язык и обширный список совместимых и обновленных пакетов (gems). Перейдите на страницу загрузки Ruby и скачайте соответствующий установщик 2.1.x. Например, если вы используете 64-разрядный компьютер, скачайте установщик Ruby 2.1.6 (x64).
  2. Установите Ruby
    Завершив скачивание установщика, выполните следующие шаги:
    а. Дважды щелкните файл установщика, чтобы запустить его.
    b. Выберите язык и примите условия.
    c. На экране параметров установите флажки рядом с параметром «Добавить исполняемые файлы Ruby в путь» и «Связать файлы .rb и .rbw с этой установкой Ruby».
  3. Скачайте набор разработки Ruby
    Скачайте набор разработки со страницы RubyInstaller
  4. Установите набор разработки Ruby
    После завершения загрузки выполните следующие действия:
    а. Дважды щелкните файл. Вам будет предложено извлечь файлы.
    b. Нажмите кнопку «. » и выберите «C:\DevKit». Вероятно, вам потребуется сначала создать эту папку, нажав кнопку «Создать папку».
    c. Нажмите кнопку «ОК», а затем «Извлечь», чтобы извлечь файлы.
  5. Откройте cmd.exe
  6. Инициализируйте набор разработки Ruby
> chdir C:\DevKit > ruby dk.rb init > ruby dk.rb install 
> gem inst tiny_tds 

Ubuntu Linux

  1. Откройте терминал
  2. Установите диспетчер версий Ruby ( rvm ) и предварительные требования
> sudo apt-get --assume-yes update > command curl -sSL https://rvm.io/mpapis.asc | gpg --import - > curl -L https://get.rvm.io | bash -s stable > source ~/.rvm/scripts/rvm 
  1. Установите Ruby с помощью rvm
    Например, установите версию Ruby 2.3.0:
> rvm install 2.3.0 > rvm use 2.3.0 --default > ruby -v 

Убедитесь, что выходные данные последней команды показывают, что вы используете версию 2.3.0.

> sudo apt-get --assume-yes install freetds-dev freetds-bin 
> gem install tiny_tds 

macOS

Примечание. В macOS уже установлен Ruby, так как операционная система имеет зависимость.

> ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
> brew install FreeTDS 
> gem install tiny_tds 

Библиотеки и RubyGems

Сегодня мы на примере простой программы для отправки электронной почты познакомимся с понятием подключаемых модулей — библиотек в Ruby.

Мы научимся работать с библиотеками, узнаем, как пользоваться утилитой gem и ёе командами: gem update , gem list , gem install . Как находить и устанавливать нужные библиотеки.

Узнаем, как с помощью require добавлять в программу установленные библиотеки и напишем простенькую программу для отправки почты с помощью гема «Pony».

План урока

  1. Использование библиотек — зачем, почему и как
  2. Система библиотек Ruby Gems
  3. Пишем свою программу для отправки электронной почты

Что такое библиотеки в программировании?

Программисты — очень прагматичные и ленивые люди, они ненавидят писать одно и то же в одной и той же программе несколько раз. Поэтому они придумали циклы и методы, потом они решили, что они не хотят писать одно и то же в разных программах и придумали классы и подключаемые файлы.

Рабочее место программиста

Через какое-то время, эти твари обленились окончательно и начали заимствовать код друг у друга: так появились библиотеки.

Библиотека — это набор программ, классов, методов и других файлов, который служит для решения какой-то задачи. И предназначенный для того, чтобы использоваться внутри других программ. Например, Windows это не библиотека (хотя тоже набор программ и классов по сути) — потому что не предназначена для использования внутри других программ, это самостоятельная и независимая программа.

А вот скажем, библиотека Pony для отправки электронной почты, которая позволяет написать свою программу на Ruby для отправки e-mail, это другое дело — она предназначена для использования в программах.

Библиотеки как правило пишут уже очень крутые разработчики, однако пользоваться библиотеками можно и нужно всем, даже самым полным новичкам.

Это во-первых, сокращает время на написание программ, во-вторых, вам не нужно знать до конца, как работает та или иная библиотека, чтобы её использовать.

Использование библиотеки для написания программ — как использование микроволновки для приготовления еды: вы не понимаете, как она работает внутри, но через какое-то время уже не можете без неё жить, здорово сокращая время процесса.

Микроволновка

Библиотеки придумали очень давно, поэтому сейчас для любой цели есть своя библиотека в любом языке программирования. И не одна. Библиотеки для работы с файлами, для работы с сайтами, с базами данных, с картинками, с музыкой и так далее.

Система управления библиотеками RubyGems

Драгоценные камни

Когда разработчик пишет библиотеку и она лежит только на его компьютере, от этого никому ни холодно, ни жарко. Чтобы эффективно обмениваться этими библиотеками, необходимо было создать центральное хранилище этих библиотек, как такой научный городок, в котором только библиотеки. Каждый, кому нужна какая-то книга, знает, куда ему ехать.

В Ruby такая система работы с библиотеками называется RubyGems. Она устанавливается вместе с Ruby и, скорее всего, уже есть на вашем компьютере, если вы проходите этот курс.

Проверьте это, выполнив в консоли команду

gem -v 

Чтобы обновить эту утилиту до последней версии, просто напишите

gem update --system 

RubyGems сама себя скачает и установит, написав вам, когда закончит этот процесс (вы снова увидите курсор для ввода текста).

Установка библиотек

Теперь немного о хранении библиотек: они все лежат на далёком-далёком сайте и занимают там, скажу я вам, немало места: сама утилита gem весит сущие килобайты, а вот всё, что она может скачать, измеряется, наверное, терабайтами.

Именно поэтому для использования библиотеки её сперва необходимо скачать и установить на ваш локальный компьютер.

Список того, что скачалось и установилось вместе с ruby, вы можете посмотреть, набрав в консоли:

gem list 

А чтобы скачать и поставить новую библиотеку, нужно знать, как она называется.

Например, чтобы установить библиотеку unicode_utils , которая здорово помогла бы нам в наших выкрутасах с кодировкой в Windows, нужно использовать команду gem install , после которой написать название библиотеки:

gem install unicode_utils 

Поиск библиотек для ваших целей

Где искать библиотеки? Если вкратце, то в гугле.

Все библиотеки хранятся на сайте rubygems.org, но искать их удобнее через сайт ruby-toolbox.com, где самые популярные Ruby библиотеки описаны и рассортированы по категориям.

Но лично мы всегда, подчёркиваю, всегда ищем библиотеки на google.com, чего и вам советуем.

Просто наберите в поисковой строке гугла:

ruby gem unicode 

И он выдаст вам несколько ссылок на различные страницы сайтов (rubygems.org обычно), где вы сможете найти нужную вам библиотеку.

Библиотека pony для отправки почты

Поставим задачу на сегодня — написать программу, которая будет отправлять e-mail прямо из консоли.

Для отправки почты в Ruby существует масса различных по сложности и возможностям библиотек. Мы выберем простую — pony.

Для того, чтобы её установить, как мы уже писали, нужно написать в консоли (в какой угодно папке) команду gem install :

gem install pony 

Подключение библиотек в программах

Вы купили микроволновку и поставили куда-нибудь на кухне. Но греть еду в ней всё равно пока не можете. Её нужно подключить.

Также и в программировании: чтобы методы и классы библиотеки были доступны в вашей программе, вам необходимо сперва её подключить.

Это делается уже знакомым нам методом require (кстати, от английского «запросить, потребовать»).

На этот раз в качестве параметра методу require нужно передать не строку с путём к файлу, а строку с названием библиотеки

require "pony" 

Пишем программу для отправки почты

Шлём, наконец, уже почту

Задачу мы поставили пару абзацев выше по тексту, приступим к делу. Сразу отметим, что пароль от почты программа также будет спрашивать у пользователя.

Никогда не храните пароли в текстах программ, чтобы злоумышленники, получив каким-то образом доступ к вашей программе, не могли слать с её помощью письма от вашего имени. Так-то.

Создадим нашу программу для отправки почты send_mail.rb в нашей рабочей папке 15-го урока: с:\rubytut\lesson15 и напишем в ней код отправки почты.

Сперва мы сохраним в переменную my_mail наш адрес почты.

Вам необходимо сюда написать адрес вашей электронной почты — тот адрес с которого вы будете слать письма:

my_mail = my_mail@mail.ru 

После этого мы спрашиваем уже знакомой нам конструкцией gets у пользователя все нужные нам поля: пароль от почты, кому слать письмо и текст самого письма. Сохраняем каждое поле в отдельную переменную.

puts "Введите пароль от вашей почты # для отправки письма:" password = STDIN.gets.chomp puts "Кому отправить письмо? Введите адрес:" send_to = STDIN.gets.chomp puts "Что написать в письме?" body = STDIN.gets.chomp.encode("UTF-8")> 

А потом отправляем почту:

Pony.mail( < :subject =>"Привет из программы на руби!", :body => body, :to => send_to, :from => my_mail, :via => :smtp, :via_options => < :address =>'smtp.mail.ru', :port => '465', :tls => true, :user_name => my_mail, :password => password, :authentication => :plain > >) 

Обратите внимание, что для отправки почты мы вызвали метод mail нового класса Pony , который подключился с помощью require ‘pony’ .

В качестве параметров этому методу передаётся ассоциативный массив, что это такое мы расскажем уже в следующем блоке нашего курса, пока просто скопируйте это себе в программу.

Также важно понимать, что настройки, которые указаны после via_options работают только для отправки писем с помощью сервера** mail.ru**, поэтому если у вас почта у другого провайдера, вам нужно заменить этот блок другим кодом.

Каким — смотрите в материалах к этому уроку. В исходниках этой программы мы в комментариях перечислили несколько типичных настроек для популярных почтовых сайтов.

Скрытие пароля при вводе

Если оставить всё, как есть, то при вводе пароля пользователь засветит его любому, кто в этот момент будет смотреть на его монитор.

Это не здорово. Не безопасно.

Поэтому мы скроем пароль от посторонних глаз при вводе. Делается это с помощью другой библиотеки io/console .

Эта библиотека устанавливается вместе с Ruby, но все равно надо подключить ее в программе методом require

require 'io/console' 

После этого нам станет доступен метод noecho , в который можно будет передать в качестве параметра наш метод gets , в несколько странном виде.

Не будем сейчас подробно останавливаться на том, как это работает, просто скажем, что теперь нужно написать вместо обычного gets вот так:

password = STDIN.noecho(&:gets).chomp 

Теперь при вводе пароля в консоли не будет ничего отображаться. Но символы при этом будут запоминаться, поэтому будьте внимательны и не ошибитесь при вводе пароля!

Запуск программы send_mail.rb

Наконец, пора запускать нашу программу. Для этого как обычно в консоли переходим в нашу папку и запускаем программу:

cd c:\rubytut\lesson15 ruby send_mail.rb 

Программа попросит вас ввести пароль от вашей почты: обратите внимание, вы печатаете что-то, а в консоли ничего не появляется. Не пугайтесь, набирайте в слепую — не очень удобно, зато безопасно.

Набирайте адрес, текст письма и если вы все сделали правильно и с интернетом у вас порядок — программа сразу отошлет письмо адресату. Можете проверить, послав письмо самим себе.

Если возникли ошибки — разберитесь, что не так. Возьмите наши исходники из файлов к уроку и попробуйте их. Главное не сдавайтесь, каждая найденная вами и исправленная ошибка добавляет 10 очков к мастерству. Серьезно, по себе знаем.

Итак, в этом уроке мы научились работать с библиотеками, узнали, как пользоваться утилитой gem и ёе командами gem update , gem list , gem install .

Узнали, как с помощью require добавлять в программу установленные у вас в системе библиотеки и написали простенькую программу для отправки почты с помощью библиотеки «Pony».

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.

Библиотеки

Как и в большинстве языков программирования, в 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *