Что такое gem linux

Библиотеки

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

Флаг —remote / -r показывает, что мы хотим проверить официальный RubyGems.org репозиторий (поведение по-умолчанию). С флагом —local / -l вы можете совершить локальный поиск среди установленных у вас гемов.

Установка гема

Когда вы знаете, какой гем вы желаете установить, например, популярные Rails:

Вы даже можете установить определенную версию библиотеки. Просто используйте флаг —version / -v :

Список всех гемов

Для просмотра всех локально установленных гемов:

Чтобы получить (очень длинный) список всех гемов, доступных на RubyGems.org:

Документация

Документация доступна в вашем терминале:

Читайте также:  Windows powershell всплывающее окно с кнопками создать

Например, gem help commands очень полезна, выводит список всех подкоманд команды gem .

Источник

RubyGems — подробно


Для начала определимся с понятиями:
RubyGems — фрэймворк для установки и запаковки Ruby библиотек и приложений.
gem — пакет(файл) с библиотекой или приложением. Имеет стандартизированный вид и расположен в хранилище в сети.
gem command tool — RubyGems предоставляет утилиту «gem» для работы с gem пакетами из командной строки. Она интегрирована с Ruby и позволяет получать доступ к установленным gem’ам как к библиотекам.

В чем же предназначение RubyGems?

До того как появилась RubyGems, для установки новой библиотеки нужно было найти, скачать её, попытаться установить, часто лишь для того, чтобы убедиться в отсутствии нужных зависимостей. Если же библиотека запакована с помощью RubyGems, достаточно попросить RubyGems сделать это за нас и получить установленную, интегрированную библиотеку со всеми нужными зависимостями. В дополнение ко всему утилита gem — платформонезависима, неважно какую ОС вы используете, везде механизм установки библиотек и приложений будет одинаков. Здорово, правда?

Под катом будут описаны:
1) Поиск, получение деталей, установка gem’s
2) Доступ документации по установленному gem
3) Использование установленных gem’s
4) Работа с версиями gem’s
5) Создание собственных gem’s

1. Поиск, получение деталей, установка gem’s

Допустим в вашем текущем проекте генерируется много XML. И где то вы слышали, что есть замечательная библиотека Jim Weirich’s Builder library, которая позволит вам создавать XML прямо в коде Ruby.
Посмотрим, доступна ли она в качестве gem:
% gem query —details —remote —name-matches build
*** REMOTE GEMS ***
AntBuilder (0.4.3)
Author: JRuby-extras
Homepage: jruby-extras.rubyforge.org
AntBuilder: Use ant from JRuby. Only usable within JRuby
builder (2.1.2)
Author: Jim Weirich
Homepage: onestepback.org
Builders for MarkUp.
.

—details — отображает детали о найденном gem
—remote — ищет на удалённом хранилище (—locale — поиск на локальной машине)
—name-matches build — фильтрует gem’s по содержанию строки ‘build’ в имени
Номер около названия каждого gem, показывает последнюю версию.
Список всех доступных версий для определённого gem, запустим команду list с опцией —all:
% gem list —details —remote —all builder
*** REMOTE GEMS ***
builder (2.1.2, 2.1.1, 2.0.0, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.0,
1.0.0, 0.1.1, 0.1.0)
Author: Jim Weirich
Homepage: onestepback.org
Builders for MarkUp.

Для установки самой последней версии:
% gem install builder #RubyGems сам выберет последнюю
По умолчанию (если вы не используете RVM), для установки gem’s используются общие системные директории, так что под Unix нужно добавлять sudo перед командой gem.
Список уже установленных на вашем компьютере gem’s:
gem list
*** LOCAL GEMS ***
builder (2.1.2)

2. Чтение документации по установленному gem

Мы установили gem builder, возникает вопрос, как с ним работать?
В большинстве случаев gem содержит документацию, она хранится в /doc директории, например:
#Узнаем путь где хранятся наши gem’s
% gem environment gemdir
/usr/local/lib/ruby/gems/1.9.0

/usr/local/lib/ruby/gems/1.9.0/doc — здесь лежит документация к установленным gem’s
/usr/local/lib/ruby/gems/1.9.0/doc/builder-2.1.2/rdoc/index.html — полный путь к документации gem’а builder в моём случае

Есть 2 способа читать документацию:
1. Заходить в директорию с документацией гема и запускать файл index.html
2. Более простой способ, запустить web сервер, командой % gem server
По умолчанию он запустится на порту 8808 и будет доступен по ссылке localhost:8808
В браузере вы увидите документацию на все установленные gem’s.
Путь к директории с gem’s и порт могут быть перезаданы с помощью опций -p и -d

Читайте также:  Shadowuser pro для windows 10

3. Использование установленных gem’s

После установки gem, достаточно написать команду require , чтобы подключить его. Т.е. работа с гемами не отличается от работы с обычными библиотеками.

4. Работа с версиями gem’s

Что если последняя вышедшая версия используемого вами gem не совместима с той которую вы используете сейчас?
К счастью, RubyGems позволяет нам одновременно хранить несколько версий gem. Указанные ниже команды установят обе версии builder.
% gem install builder -v 2.1.2
% gem install builder -v 1.1.0
% gem list builder
*** LOCAL GEMS ***
builder (2.1.2, 1.1.0)

Тут доступны ещё несколько трюков:
gem ‘builder’ , ‘> 1’ — использовать версию больше чем первую
gem ‘builder’ , »>= 2.2.0′, ‘ — использовать версию больше 2.2.0 и меньше 3.0
Полный список выражений:
= идентичная версия
!= неидентичная версия
> версия больше чем
= большая и равная версия
примерно больше чем (подробнее RubyGems docs)

Источник

Знакомство с Gem. Часть первая

Доброго времени суток!

Введение

Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem‘ы. Итак, давайте познакомимся с ним поближе.

С чего начать

Для начала неплохо было бы отыскать запылившийся файлик с расширением .rb. Нашли? Ok, двигаемся дальше.
Далее нам необходимо создать файл с названием hello-world.gemspec, где, как вы, вероятно, догадались hello-world — имя вашего будущего gem’a.
Следующим нашим шагом будет заполнение этого самого файла (если так можно выразиться, файла-спецификации). Содержание его должно выглядеть следующим образом:

Отлично, но собирать то нам пока нечего! Почему? Мы забыли создать helloworld.rb. Давайте немедленно исправим нашу оплошность:

Фуууух! Теперь, когда мы имеем минимальный набор файлов, мы можем приступить к сборке нашего с вами gem’a. Для его сборки мы должны использовать команду

В случае удачного выполнения данной операции на выходе мы получим файл с название hello-world-1.0.gem. Всё, наш gem собран.

Постойте-ка

Вы хотите поделиться своим gem’ом с другими людьми? Если да, то вы запросто можете это сделать следующей командой:

После выполнения этой команды мы должны увидеть следующее:

Увы, мы этого не увидим. Знаете почему? Потому, что мы с вами ещё не зарегистрированы на RubyGems. Сделать это можно здесь.
Теперь повторите команду push и всё будет ok.

All over the world

Теперь наш gem сможет установить любой рубист (хоть из Австралии), выполнив команду

После того, как установка будет завершена напишем следующий код и выполним его:

В результате чего мы увидим заветное в нашей консоли.

Стопэ!

Вообще-то мы наследили на RubyGems. Вы же об этом не забыли? Удалим наш gem следующей командой:

Да и из нашего списка gem’ов можно удалить. Поигрались и хватит!

Заключение

Вот и сказочке конец, а кто слушал — молодец.
Сегодня мы с вами познакомились с поистине замечательным инструментом по имени gem. Теперь вы знаете, что если что-то случиться, gem обязательно придёт к вам на помощь. А Чип, Чип, Чип… И Дейл к нам спешат.

Источник

Комфортное управление пакетами в Ruby

RVM — Ruby Version Manager (менеджер управления пакетами в ruby) сослужит хорошую службу в тех частых ситуациях, когда вам может потребоваться запуск нескольких версий ruby на одной машине или же нескольких проектов с разными наборами gem’ов для них. Чем-то напоминает virtualenv, если сравнивать с аналогичным приложением для python.

Читайте также:  Режим сохранения аккумулятора windows

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

Что такое gem?

Gem (драгоценный камень, жемчужина) — пакет ruby, предоставляющий какую-то функциональность. Например, библиотека redcarpet , доступная в виде gem’а, обеспечивает поддержку markdown.

Что такое gemset?

Gemset (set: набор, комплект) — набор gem’ов.

Установка RVM

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

Дополним переменную PATH, дабы указать путь к директории rvm. Запись нужно сделать в .bashrc или .zshenv .

Дальше любопытно было бы просмотреть список доступных для установки и уже установленных пакетов ruby.

Использование разных версий ruby и gemset’ы

Для примера создадим gemset jekyll , где будут собраны все нужные одноимённому генератору статических страниц gem’ы.

Gemset’ы создаются для определённой версии ruby. Так, при переключении с одной версии на другую вы будете всегда видеть разный набор gemset’ов: отображаются они также лишь для своей версии.

Но здесь мы забежали чуть вперёд. Дело в том, что при переходе в директорию проекта, автоматически меняется версия ruby и набор gemset’ов, о чём речь пойдёт чуть ниже.

Gemset’ы можно удалять(delete), очищать(), экспортировать(export) и импортировать(import) gem’ы из одного в gemset’a в другой. Наиболее часто используемые действия отражены в данной ниже таблице.

команда описание
rvm gemset create создать новый gemset
rvm gemset export new.gems экспорт списка gem’ов в файл new.gems
rvm gemset import new.gems импорт в текущий gemset списка gem’ов из файла new.gems
rvm gemset delete удалить gemset
rvm gemset empty очистить gemset
rvm gemset delete example —force полностью удалить gemset example
rvmreset перезагрузка RVM
rvm uninstall удалить версию Ruby, оставить исходники
rvm implode полностью удалить RVM!
rvm list known получить список всех версий ruby доступных для установки
rvm list отобразить список установленных версий ruby
rvm gemset list просмотреть список gemset’ов в выбранной версии ruby
rvm install 1.9.3 установить ruby версии 1.9.3
rvm remove 1.9.3 удалить ruby версии 1.9.3
rvm use 1.9.3 переключиться на ruby версии 1.9.3
rvm use 1.9.3@jekyll —default использовать версию ruby 1.9.3 c gemset jekyll по умолчанию
rvm use system использовать системную версию ruby

Создание отдельного окружения для проекта

Бывают случаи, когда необходимо не просто использовать разные версии ruby, но и разные версии gemset’ов для разных проектов. В этом посильную помощь может оказать создание своего окружения для каждого из проектов.

В примере выше мы создали gemset jekyll , который использует версию ruby 1.9.3 и собственный набор gem’ов. Теперь у нас имеется два пути для работы с ним.

Переключение между gemset’ами

Во-первых, можно переключаться между gemsets при необходимости.

Окружение?

Но зачастую быстрее один раз внести необходимые настройки. Для этого следует создать два файла в каталоге с проектом: .ruby-gemset и .ruby-version , куда и поместить информацию об используемом в проекте gemset’е и версии ruby соответственно.

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

То есть, если вы использовали версию ruby 2, после перехода в каталог с проектом, она автоматически изменится на версию, указанную в .ruby-version , что достаточно удобно.

Источник

Оцените статью